我没有这方面的代码,因为我不知道该怎么做,也无法在Google上找到很多帮助。
有没有办法找到2个列表上的相同索引是否相同?
例如:
x_list = [1, 2, 3, 4, 5]
y_list = [1, 2, A, B, 5]
我想知道X的第一个索引是否与Y的第一个索引相同,X的第二个索引与Y的第二个索引相同,等等。我可以这样做:
x_list[0] == y_list[0]
但需要一个无限的解决方案。
答案 0 :(得分:10)
zip
列表并返回测试(返回布尔值作为结果):
[i == j for i, j in zip(x_list, y_list)]
如果您不需要值,可以使用any
快速检查是否存在False
(表示项目不相同):
any(i != j for i, j in zip(x_list, y_list))
any
版本会在找到False
时中断,这意味着您可能不必遍历整个列表,除非在最坏的情况下。
答案 1 :(得分:3)
您始终可以使用列表推导:
[True if i == j else False for i,j in zip(x_list, y_list)]
。
您还可以查看Moses Koledoye不太明确的答案,其中True if i == j else False
是juzt i == j
zip功能会将您的列表组合起来,如[(1,1),(2,2),(3,' A'),(4,' B'),( 5,5)]
结果:[True, True, False, False, True]
如果你使用Python2,还建议使用itertools中的izip。
答案 2 :(得分:1)
试试这个:
/* CSS DOCUMENT */
body {
background-color: #fff;
color: #0094ff;
font-family: 'Segoe UI Light', 'Tahoma', Geneva, Verdana, sans-serif;
font-size: 24px;
font-weight: 100;
text-decoration: none;
}
ul.NavList {
list-style-type: none;
text-decoration: none;
text-align: center;
padding: 20px 20px 0 0;
}
ul.NavList li {
display: inline;
text-decoration: none;
}
答案 3 :(得分:1)
如果您想要比较不同大小的列表,可以尝试使用以下定义。这将获取或不获取唯一索引元素,而不是True或False列表。
def is_uniq_lists(x_list, y_list):
if len(x_list) != len(y_list):
return False
for (i,j) in zip(x_list, y_list):
if i != j: return False
return True
结果:
>>> a = [1,2,3,4,5] # Unique lists
>>> b = [1,2,3,4,5]
>>> List.is_uniq_lists(a,b)
True
>>> a=[1,2,3,4,5] # Different lists
>>> b=[1,2,'A','B',5]
>>> List.is_uniq_lists(a,b)
False
>>> a=[1,2,3,4,5]
>>> b=[1,2,3,4,5,6] # Lists of unequal length
>>> List.is_uniq_lists(a,b)
False
答案 4 :(得分:0)
def compareArrayIndex(L1, L2):
if(len(L1) == len(L2)):
for i in range(0, len(L2)):
if(L1[i] > L2[i]):
# logic
elif(L1[i] < L2[i]):
# logic
else:
# logic
return value