For loop using more than one list in Python [duplicate]

China☆狼群 提交于 2019-12-05 14:51:40

问题


I'm looking for solution to my problem. At the moment I have two list of elements:

column_width = ["3", "3", "6", "8", "4", "4", "4", "4"]
fade = ["100", "200", "300"]

What I want to achieve is to create for loop which wil give me following output:

column-3-fade-100
column-3-fade-200
column-6-fade-300
column-8-fade-100
column-4-fade-200
...

Nested for loop doen't work for me:

for i in fade:
    for c in column_width_a:
        print("column-{0}-fade-{1}".format(c, i))

Is there any other way to generate this output?


回答1:


This is one approach using itertools.cycle.

Ex:

from itertools import cycle

column_width = ["3", "3", "6", "8", "4", "4", "4", "4"]
fade = cycle(["100", "200", "300"])

for i in column_width:
    print("column-{}-fade-{}".format(i, next(fade)))

Output:

column-3-fade-100
column-3-fade-200
column-6-fade-300
column-8-fade-100
column-4-fade-200
column-4-fade-300
column-4-fade-100
column-4-fade-200



回答2:


Try:

from itertools import cycle
print('\n'.join("column-{}-fade-{}".format(x, y) for x, y in zip(column_width, cycle(fade))))


来源:https://stackoverflow.com/questions/58971397/for-loop-using-more-than-one-list-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!