【发布时间】:2011-03-22 09:33:40
【问题描述】:
我在这里发疯了,我有一个截止日期。所以我在 python 中有这个多维列表:
list_a = [[['a', 'b'],['c', 'd'], ['e', 'CB'], ['g', 'h'], ['a', 'j', 'k']]]
请注意,整个内容都在 2 个括号中。 我需要比较这样的元素:a 到 c、a 到 d、b 到 c、b 到 d、a 到 e、a 到 CB...直到第一个列表将它的所有项目与另一个列表中的所有项目进行比较列表,然后它移动到第二个列表并开始将其项目与其余列表进行比较,依此类推直到最后。我不希望它将自己的项目与自己的列表进行比较。 这是一些代码:
for i in range(0, len(list_a)):
for j in range(0, len(list_a)):
for o in range (0, len(list_a[i])):
for t in range(1, len(list_a[j])):
try:
for x in range(0, len(list_a[i][o])):
for y in range(0, len(list_a[j][t])):
print list_a[i][o][x], "i=",i, "o=",o, "x=",x
print list_a[j][t][y], "j=",j, "t=",t, "y=",y
except IndexError:
print ""
这个失败是因为它将自己的项目与自己的项目进行比较。当然有更好的方法来做到这一点,而不是在彼此之间放置大量的 forloop。
而且,当它遇到 CB 时,我需要它向我发出信号。如果它循环正确,这将很容易。哦,我猜那里的“尝试”可以删除。我敢肯定这很容易,但我现在想不通。
【问题讨论】:
-
我没有看到任何可以被描述为比较的东西。你想达到什么目的?此外,尽管您注意到列表的双重嵌套,但您没有解释为什么会这样。
-
嗯,比较部分是在某处添加一个 if 语句,这很容易。现在我只是将它们全部打印出来,看看当前选择了哪些元素。
-
Rmitteleitav Python 中唯一的数组是这些:(docs.python.org/library/array.html#array.array) 你所说的数组实际上是列表。
标签: python multidimensional-array