python的for循环同时遍历两个list?
b = [1, 2, 3]
c = [(10, 20), (30, 40), (50, 60)]
for i, j in b, c:
print(i, j)
ValueError: too many values to unpack (expected 2)
b = [1, 2]
c = [(10, 20), (30, 40)]
for i, j in b, c:
print(j)
2
(30, 40)
这输出到底是怎么回事啊, 不能这么遍历吗...
为什么我印象中有这种用法呢...
dict.items()
就能用:
for key, value in x.items()
遍历..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
當你寫出
b, c
的時候, Python 會以為你要製造一個 tuple, 所以:相當於:
當
b = [1, 2, 3]
且c = [(10, 20), (30, 40), (50, 60)]
時就相當於:所以第一個迭代到的對象是
[1, 2, 3]
, 而這個 list 有三個元素自然是無法拆解成兩個變量i
和j
的。但如果
b = [1, 2]
且c = [(10, 20), (30, 40)]
,則相當於:第一個迭代到的對象是
[1, 2]
, 該 list 有兩個元素恰能 unpack 為i
和j
,所以下面的語法是能夠順利運行的。回到你的需求,若要平行迭代兩個 list,你需要的是
zip
或zip_longest
,你可以參考 @Python爬虫分享 的範例。我回答過的問題: Python-QA
好像没有这种用发吧,哈哈。
但是我记得有这种用法:
同时遍历的话,不知道下面这种能否解决?供参考: