如何使用2个列表打印循环?

Zey*_*nel 2 python for-loop list

我有2个清单:

filtered_items_list = [src1, scr2, scr3]
filtered_items_url_list = [url1, url2, url3]
Run Code Online (Sandbox Code Playgroud)

我想打印出来

src1, url1
src2, url2
src3, url3
Run Code Online (Sandbox Code Playgroud)

如果我尝试:

>>> for src, url in filtered_items_list, filtered_items_url_list:
    print src, url
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)

如果我试试这个:

>>> for src in filtered_items_list:
        for url in filtered_items_url_list:
            print """"src: %s; url: %s""" % (src, url)
Run Code Online (Sandbox Code Playgroud)

我明白了:

"src: src1; url: url1
"src: src1; url: url2
"src: src1; url: url3
"src: scr2; url: url1
"src: scr2; url: url2
"src: scr2; url: url3
"src: scr3; url: url1
"src: scr3; url: url2
"src: scr3; url: url3
>>> 
Run Code Online (Sandbox Code Playgroud)

你能建议一个解决方案吗?谢谢!

Sve*_*ach 9

你应该使用zip():

for src, url in zip(filtered_items_list, filtered_items_url_list):
    print src, url
Run Code Online (Sandbox Code Playgroud)

  • [izip](http://docs.python.org/library/itertools.html#itertools.izip)倾向于更好的选择,因为它避免了不必要地复制列表.请注意,它们都在最短列表的末尾切断.如果你想使用最长的`izip_longest()`,它将为其余的填写一个None(或你指定的其他默认值). (5认同)