如何检查python中的两个2​​d列表是否相同(其中的数据)

时间:2018-03-17 16:27:50

标签: python python-3.x

#for 1d lists
x = [1,2,3]
y = [1,2,3]
print([True if x[i]==y[i] else False for i in range(len(x))])

#for 2d lists
d=[[0,0,0,0],[0,0,0,0],[0,0,0,0]]
e=[[0,0,1,0],[0,0,0,0],[0,0,0,0]]

for i in range(0,len(d)):
    for j in range(0,len(d[i])):
          if d[i][j]==e[i][j]:
               continue
          else 
              print (false)
print(true) 

对于2d列表我使用两个for循环(嵌套)并将每个元素与其他元素进行比较(d [i] [j] == e [i] [j])...有没有更好的方法? 假设两个列表具有相同的大小 我是新手的python,背景很小 没有numpy库可以吗?

1 个答案:

答案 0 :(得分:2)

参见Python文档中的第5章 - Comparing Sequences and Other Types

  

比较使用词典排序:首先比较前两个项目,如果它们不同,则确定比较的结果;如果它们相等,则比较接下来的两个项目,依此类推,直到任一序列用完为止。如果要比较的两个项本身是相同类型的序列,则递归地执行词典比较。如果两个序列的所有项目相等,则认为序列相等。

您应该使用重载的==运算符来处理集合(以及几乎任何两个可比较的对象)。