例如,我们有 2 个列表:
list_1 = [12, 3, 45, 2, 50]
list_2 = [6, 3, 30, 5, 50]
如我们所见,我们在两个列表中有两个相同的值。我目前正在尝试找出一个代码,如果两个值按顺序相同,它将检查列表中的每个值,并且它将返回 False 或 True。 (检查每个列表的第一个值是否相同。在这种情况下,他们首先检查 12 和 6 是否相同,由于它们不相同,它将返回 False。他们检查下一个,如果 3 和3 是相同的,并且由于相同,它们将返回 True。)
如果有人愿意帮助我就好了。
答案 0 :(得分:2)
我们可以使用 for 循环来实现这一点。 (我知道这种方法是老派的,你可以通过使用 map() 和 all() 函数使用单线实现相同的效果)
我先写完整的代码。然后我会解释每个步骤。
(我假设列表将具有相同数量的元素。)
代码:-
list_1 = [12, 3, 45, 2, 50]
list_2 = [12, 3, 45, 2, 50]
length = len(list_1) # STEP 1
for i in range(0, length): # STEP 2
if list_1[i] != list_2[i]:
print(False)
else:
print(True)
第一步
确定列表的长度。这可以通过 len()
函数完成。 len(list_1)
将返回 list_1 的长度
第 2 步
遍历第一个列表中的每个元素,并将其与第二个列表中的相应元素进行比较。如果它们不同,则打印 False
或打印 True
for i in range(0, length):
if list_1[i] != list_2[i]:
print(False)
else:
print(True)
答案 1 :(得分:1)
手动检查和比较列表中每个值的手动方法。 list_1 = [12, 3, 45, 2, 50] list_2 = [6, 3, 30, 5, 50]
if(len(list_1) == len(list_1)):
for i in range(0,len(list_1)):
print(list_1[i] == list_2[i])
else:
print(False) #note that If this line is executed we will get only one output
结果如下: 错误的 真的 错误的 错误的 真实
(已编辑)
答案 2 :(得分:0)
您可以使用 all
+ zip()
然后您可以将它们与 ==
进行比较。
来自docs:
<块引用>all(iterable)
:
如果可迭代对象的所有元素都为真(或可迭代对象为空),则返回 True。
zip(*iterables)
;
制作一个迭代器,聚合来自每个可迭代对象的元素。
list_1 = [12, 3, 45, 2, 50]
list_2 = [6, 3, 30, 5, 50]
def check_lists(l1,l2):
return all(x==y for x,y in zip(l1,l2))
print (check_lists(list_1,list_2))
或者,您可以通过
直接比较它们print(list_1==list_2)
答案 3 :(得分:0)
在这种情况下,他们首先检查 12 和 6 是否相同,由于它们不相同,因此将返回 False。他们检查下一个,如果 3 和 3 相同,并且由于相同,他们将返回 True。
您可以使用 itertools.zip_longest 来迭代多个序列并一次拥有它们的第 n 个项目,例如在您的列表中将是 12 和 6,然后是 3 和 3,然后是 45 和 30,依此类推。
from itertools import zip_longest
list_1 = [12, 3, 45, 2, 50]
list_2 = [6, 3, 30, 5, 50]
result = [
value_1 == value_2
for value_1, value_2 in zip_longest(list_1, list_2)
]
print(result)
输出:
[False, True, False, False, True]
在这里,您可以看到(从 1 开始编号)第 2 个(值为 3)和第 5 个(值为 50)项是相同的,因此只有 True
项。