Possible to have multiple loop variables?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • laredotornado

    Possible to have multiple loop variables?

    I don't know why I thought this would work, but I would like to have 3
    variables in my for loop per iteration. Those familiar will know that
    this

    ms1 = {'managed1':701 9:8020,'managed 2':7020:8021}
    for m, lp, ssl_lp in ms1.items():
    managedServer = create(m,'Serve r')
    print 'creating managed server '+m
    managedServer.s etListenAddress ('147.191.71.70 ')
    managedServer.s etListenPort(lp )
    managedServer.s etEnabled(0)
    cd('SSL/cgServer')
    managedServer.s etEnabled(1)
    managedServer.s etListenPort(ss l_lp)
    managedServer.s etCluster(clus1 )

    causes

    File "/export/third-party/etsbea/home/etsbea/tests/wlst/
    createcluster.p y", line 9
    ms1 = {'managed1':701 9:8020,'managed 2':7020:8021}
    ^
    SyntaxError: invalid syntax


    How would I set up the ms1 array such that I can use three items per
    object?

    Thanks, - Dave
  • Marc 'BlackJack' Rintsch

    #2
    Re: Possible to have multiple loop variables?

    On Wed, 30 Jul 2008 10:49:58 -0700, laredotornado wrote:
    I don't know why I thought this would work, but I would like to have 3
    variables in my for loop per iteration. Those familiar will know that
    this
    >
    ms1 = {'managed1':701 9:8020,'managed 2':7020:8021} for m, lp, ssl_lp in
    ms1.items():
    managedServer = create(m,'Serve r')
    print 'creating managed server '+m
    managedServer.s etListenAddress ('147.191.71.70 ')
    managedServer.s etListenPort(lp )
    managedServer.s etEnabled(0)
    cd('SSL/cgServer')
    managedServer.s etEnabled(1)
    managedServer.s etListenPort(ss l_lp)
    managedServer.s etCluster(clus1 )
    >
    causes
    >
    File "/export/third-party/etsbea/home/etsbea/tests/wlst/
    createcluster.p y", line 9
    ms1 = {'managed1':701 9:8020,'managed 2':7020:8021}
    ^
    SyntaxError: invalid syntax
    >
    >
    How would I set up the ms1 array such that I can use three items per
    object?
    `ms1` is a dictionary and not an array. You could use a tuple as value:

    In [5]: ms1 = {'managed1': (7019, 8020), 'managed2': (7020, 8021)}

    In [6]: for a, (b, c) in ms1.iteritems() :
    ...: print a, b, c
    ...:
    managed1 7019 8020
    managed2 7020 8021

    Ciao,
    Marc 'BlackJack' Rintsch

    Comment

    Working...