【发布时间】:2016-02-10 20:02:32
【问题描述】:
我正在使用列表列表(类似于拼图)并尝试编写一个函数,如果在与另一个列表相同的索引中至少有一个重复值(可以视为列),该函数将返回“False” , 视觉上)(否则为真)。例如:
List = [[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]]
应该返回 'True' 因为没有重复 但是:
List = [[ 1, 2, 3, 4, 5],
[ 6, 2, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]]
应该返回“False”,因为在 index[1] 的 list1 中有一个值为“2”,而在 index[1] 的 list2 中有一个值为“2”。
我写函数的方式如下
def check_columns_valid(list):
for i in range(len(list)):
if i[0] == i[5] == i[10] == i[15] == i[20]:
return False
elif i[1] == i[6] == i[11] == i[16] == i[21]:
return False
elif i[2] == i[7] == i[12] == i[17] == i[22]:
return False
elif i[3] == i[8] == i[13] == i[18] == i[23]:
return False
elif i[4] == i[9] == i[14] == i[19] == i[24]:
return False
return True
我试图检查某些索引是否彼此相等,但如果所有索引彼此相等并且我只需要至少一个,我的代码可能只会返回“False”。而且我也不确定这种做法是否有效。我不知道我是否跳过步骤。
【问题讨论】:
-
你测试了吗?使用一些示例数据进行尝试。找到一个特定的问题将有助于人们调试它。
-
当你写 i[0] == i[5] == i[10] == i[15] == i[20] 这意味着它们都相等。如果你写 i[0] == i[5] 或 i[0] == i[10] 或 ... 你会得到你想要的,但有更好的方法来解决这个问题。