2011-02-04 92 views
2

我有2所列出:如何打印2个列表循环?

filtered_items_list = [src1, scr2, scr3] 
filtered_items_url_list = [url1, url2, url3] 

我需要打印的

src1, url1 
src2, url2 
src3, url3 

如果我尝试:

>>> for src, url in filtered_items_list, filtered_items_url_list: 
    print src, url 

我得到这个错误:

ValueError: too many values to unpack 

如果我尝试这样的:

>>> for src in filtered_items_list: 
     for url in filtered_items_url_list: 
      print """"src: %s; url: %s""" % (src, url) 

我得到这个:

"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 
>>> 

您能否提供一个解决方案吗?谢谢!

回答

8

你应该使用zip()

for src, url in zip(filtered_items_list, filtered_items_url_list): 
    print src, url 
+5

[izip(http://docs.python.org/library/itertools.html#itertools.izip)往往BA更好的选择,因为它避免了不必要的复制名单。请注意,它们都在最短列表的末尾处被切断。如果你想使用最长的`izip_longest()`,它会为剩余的填充None(或其他默认值)。 – chmullig 2011-02-04 17:53:04