【发布时间】:2020-07-26 19:02:37
【问题描述】:
我正在处理列表,一个是 3D 列表,另一个是 4D 列表,我正在尝试比较它们,如果内部列表匹配,则附加“True”,否则附加“False”我做了一些事情,但它并不完全正常工作,所以也许你可以帮助我,这是我的代码
#3D list
list1 = [[[0, 2, 1], [0, 4, 2, 3, 1]], [[0, 4, 3, 1], [0, 4, 3, 1]], [[0, 3, 2, 1], [0, 2, 3, 4, 1]]]
#4D list
list2 = [[[[0, 2, 1], [0, 4, 2, 1]], [[0, 4, 3, 1], [0, 4, 3, 1]], [[0, 3, 2, 1], [0, 4, 1]]],
[[[0, 2, 1], [0, 4, 2, 3, 1]], [[0, 4, 3, 1], [0, 4, 3, 1]], [[0, 3, 2, 1], [0, 2, 3, 4, 1]]]]
decision = []
for i, j in zip(list1, list2):
finaldecision = []
for k in j:
if i == k:
decision.append('True')
else:
decision.append('False')
finaldecision.append(decision)
print(finaldecision)
finaldecision = [['False', 'False', 'False', 'False', 'True', 'False']]
我想比较每两个元素,例如:
#From the 3D list #From the first 3D list of the 4D list
[[0, 2, 1], [0, 4, 2, 3, 1]] == [[0, 2, 1], [0, 4, 2, 1]] #False
[[0, 4, 3, 1], [0, 4, 3, 1]] == [[0, 4, 3, 1], [0, 4, 3, 1]] #True
[[0, 3, 2, 1], [0, 2, 3, 4, 1]] == [[0, 3, 2, 1], [0, 4, 1]] #False
然后对 4D 列表的下一个 3D 列表做同样的事情,这是我想要的输出。
finaldecision = [[False, True, False], [True, True, True]]
我确实得到了元素的数量,但是 True 和 False 的顺序不正确,并且生成的 2D 列表的维度也不正确,任何帮助将不胜感激,非常感谢!
【问题讨论】:
标签: python list for-loop list-comprehension