I am trying to iterate over multiple collections of values and the code is performing as expected except I would like to iterate over each account_id once, instead of multiple times for each reach.
Essentially I want each region to correlate with a single account_id. YUL > 11111111111; iad > 11111111222; gru > 99111111111.
For example here's my code below.
buildings = [i for i in range(1,90)]
regions = ['yul', 'iad', 'gru']
accounts = ['11111111111', '11111111222', '99111111111']
def testing(buildings, regions):
accountIdx = -1
for account in accounts:
if accountIdx < 0:
print('First iteration')
accountIdx = 1
curr_account = accounts[accountIdx] # Counter variable after each iteration
print(curr_account)
for region in regions:
for building in buildings:
print('%s%s in account:%s'%(region, building,curr_account))
This is what I would like. It has the same thing for accounts 11111111222 and 99111111111 too.
Current Output: iad**<1-89>** in account:11111111111
gru**<1-89>** in account: 11111111111
yul**<1-89>** in account: 11111111111
Expected Output: iad**<1-89>** in account:11111111111
gru**<1-89>** in account: 11111111222
yul**<1-89>** in account: 99111111111
I would like the output to be like this above, with each region correlating with a single account_id, instead of iterating over each region with the SAME account Id.
Does anyone know how this solution can be achieved?
CodePudding user response:
you can use zip
to bind the corresponding index of list together and achive your solution
# your code goes here
buildings = [i for i in range(1,90)]
regions = ['yul', 'iad', 'gru']
accounts = ['11111111111', '11111111222', '99111111111']
def testing(buildings, regions):
for account, building, region in zip(accounts, buildings, regions):
print('%s%s in account:%s'%(region, building, account))
testing(buildings, regions)
CodePudding user response:
Use zip
buildings = [i for i in range(1,90)]
regions = ['yul', 'iad', 'gru']
accounts = ['11111111111', '11111111222', '99111111111']
for region, curr_account in zip(regions,accounts):
print(f"{region} {building} in account: {curr_account}")
Each region corresponds to an account by the order, they are positioned in the lists.
yul : 11111111111
iad : 11111111222
gru : 11111111222