逐元素比较两个列表,使用OR操作
我想用“或”的方式来比较两个长度相同的列表里的元素。
>>> [0,0,1,1,0] or [1,1,0,1,0]
[0, 0, 1, 1, 0]
我希望得到的结果是
[1,1,1,1,0]
我该怎么做才能实现这个比较呢?
3 个回答
0
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。
有些时候,我们会遇到一些问题,比如数据不太对劲,或者我们想要的数据没有被正确地传递。这就像是你在倒水的时候,水桶的底部有个洞,水就漏掉了。
为了避免这些问题,我们可以使用一些工具和方法来确保数据能够正确地传递和处理。就像在倒水之前,先检查水桶有没有漏水,确保水能够顺利到达目的地。
总之,处理数据就像是一个小实验,我们需要仔细观察,确保每一步都做对了,这样才能得到我们想要的结果。
l1 = [0,0,1,1,0]
l2 = [1,1,0,1,0]
l = [1 if l1[i] == 1 or l2[i] == 1 else 0 for i in range(len(l1))]
print(l) #Output : [1, 1, 1, 1, 0]
# without using one-liner
l = []
for i in range(len(l1)):
if l1[i] == 1 or l2[i] == 1:
l.append(1)
else: l.append(0)
print(l)
1
使用numpy库:
import numpy as np
np.logical_or([0,0,1,1,0], [1,1,0,1,0]).astype(int)
array([1, 1, 1, 1, 0])
同时可以看看这个问题的答案:
2
你可以使用 zip()
函数来同时遍历两个列表中对应的元素,然后用列表推导式对每一对元素进行 OR
操作。
list1 = [0, 0, 1, 1, 0]
list2 = [1, 1, 0, 1, 0]
result = [a or b for a, b in zip(list1, list2)]
print(result)
输出结果:
[1, 1, 1, 1, 0]