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()
```
遍历..
當你寫出 `b, c` 的時候, Python 會以為你要製造一個 tuple, 所以:
```
for i, j in b, c:
```
相當於:
```
for i, j in (b, c):
```
當 `b = [1, 2, 3]` 且 `c = [(10, 20), (30, 40), (50, 60)]` 時就相當於:
```
for i, j in ([1, 2, 3], [(10, 20), (30, 40), (50, 60)]):
```
所以第一個迭代到的對象是 `[1, 2, 3]`, 而這個 list 有三個元素自然是無法拆解成兩個變量 `i` 和 `j` 的。
但如果 `b = [1, 2]` 且 `c = [(10, 20), (30, 40)]`，則相當於:
```
for i, j in ([1, 2], [(10, 20), (30, 40)]):
```
第一個迭代到的對象是 `[1, 2]`, 該 list 有兩個元素恰能 unpack 為 `i` 和 `j`，所以下面的語法是能夠順利運行的。
回到你的需求，若要平行迭代兩個 list，你需要的是 `zip` 或 `zip_longest`，你可以參考 @Python爬虫分享 的範例。
我回答過的問題: Python-QA