gpt4 book ai didi

python - 比较 Python 中两个列表中的值

转载 作者:太空狗 更新时间:2023-10-29 20:34:21 26 4
gpt4 key购买 nike

在 Python 2.7 中,我有两个整数列表:

x = [1, 3, 2, 0, 2]
y = [1, 2, 2, 3, 1]

我想创建第三个列表,它指示 xy 中的每个元素是否相同,以产生:

z = [1, 0, 1, 0, 0]

我如何使用列表理解来做到这一点?

我的尝试是:

z = [i == j for i,j in ...]

但我不知道如何完成。

最佳答案

您正在寻找zip

z = [i == j for i,j in zip(x,y)]

但是你最好加上int调用以获得所需的输出

>>> z = [int(i == j) for i,j in zip(x,y)]
>>> z
[1, 0, 1, 0, 0]

否则你会得到一个列表,如[True, False, True, False, False]


作为ajcrcomment 中提到,如果列表很长,最好使用 itertools.izip 而不是 zip。这是因为它返回一个迭代器而不是一个列表。 documentation 中提到了这一点

Like zip() except that it returns an iterator instead of a list.

演示

>>> from itertools import izip
>>> z = [int(i == j) for i,j in izip(x,y)]
>>> z
[1, 0, 1, 0, 0]

关于python - 比较 Python 中两个列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32996293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com