#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库可以吗?
答案 0 :(得分:2)
参见Python文档中的第5章 - Comparing Sequences and Other Types:
比较使用词典排序:首先比较前两个项目,如果它们不同,则确定比较的结果;如果它们相等,则比较接下来的两个项目,依此类推,直到任一序列用完为止。如果要比较的两个项本身是相同类型的序列,则递归地执行词典比较。如果两个序列的所有项目相等,则认为序列相等。
您应该使用重载的==
运算符来处理集合(以及几乎任何两个可比较的对象)。