Python 多个二维列表上的Foreach:

Python 多个二维列表上的Foreach:,python,arrays,list,iterator,Python,Arrays,List,Iterator,下面是我遇到的问题的一个例子: A = [ [1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18] ] B = [ ['1', '2', '3', '4', '5', '6'], ['7', '8', '9', '10', '11', '12'], ['13', '14', '15', '16', '17', '18'] ] for a, b in A, B:

下面是我遇到的问题的一个例子:

A = [
    [1, 2, 3, 4, 5, 6],
    [7, 8, 9, 10, 11, 12],
    [13, 14, 15, 16, 17, 18]
]

B = [
    ['1', '2', '3', '4', '5', '6'],
    ['7', '8', '9', '10', '11', '12'],
    ['13', '14', '15', '16', '17', '18']
]

for a, b in A, B:
    for ai, bi in a, b:
        if ai == int(bi):
            print 'it worked!'
这段代码在第13行给了我一个错误:
ValueError:要解压缩的值太多

我希望
a
b
指向6个元素的列表,例如
[1,2,3,4,5,6]
['1','2','3','4','5','6']
,分别用于第一次迭代

我尝试过为每个2D数组使用一个迭代器,就像上面一样,我也尝试过使用12个变量,以防Python试图将6个元素列表中的每个元素传递给它自己的变量(6个用于
a
,6个用于
b
,如
a1,…a6,b1,…b6


有人能指出这里发生了什么,或者解释一下如何得到我想要的结果吗?

如果你想同时遍历多个列表,你需要使用
zip
():


我不确定您想用
a==int(b)
语句实现什么,所以我省略了它。

如果您想同时遍历多个列表,您需要使用
zip
():

我不确定您想用
a==int(b)
语句实现什么,所以我省略了它。

您可以这样做:

for a, b in zip(A, B):
    if a == map(int, b):
        print 'it worked!'
如果要打印单个
文件,则可以执行以下操作!

if all(a == map(int, b) for a, b in zip(A, B)):
    print 'it worked!'
zip
返回一个长度为两个列表中最小的对的列表,因此它会说它适用于这些:

A = [[1, 2]]
B = [['1', '2'], ['3', '4']]
如果要避免这种情况,您可以导入itertools,并用替换
zip

您可以执行以下操作:

for a, b in zip(A, B):
    if a == map(int, b):
        print 'it worked!'
如果要打印单个
文件,则可以执行以下操作!

if all(a == map(int, b) for a, b in zip(A, B)):
    print 'it worked!'
zip
返回一个长度为两个列表中最小的对的列表,因此它会说它适用于这些:

A = [[1, 2]]
B = [['1', '2'], ['3', '4']]

如果你想避免这种情况,你可以导入itertools并用替换
zip

谢谢!我忘记了zip函数,我甚至没有意识到我忘了映射预期的函数,所以我会在我的问题中更正它。谢谢!我忘记了zip函数,我甚至没有意识到我忘记了map是预期的函数,所以我将在我的问题中更正它。