我正在尝试比较两个字符串列表并返回布尔值。但是总会返回True或False。
stringList = ["252.007", "546.658", "252.108"]
paramValue = ["252.017", "546.658", "252.008"]
def compareList():
return [x != stringList for x in paramValue]
#return [x == stringList for x in paramValue]
输出应为包含以下内容的列表:
[False, True, False]
我无法弄清楚,我也不明白,如果我使用!=,为什么它返回[True,True,True],如果我使用==,为什么它返回[False,False,False]?给我解释一下?
TIA
答案 0 :(得分:2)
您可以使用zip()
组合两个列表的元素,并在列表理解中进行比较。
stringList = ["252.007", "546.658", "252.108"]
paramValue = ["252.017", "546.658", "252.008"]
def compareList(l1, l2):
return [i==j for i, j in zip(l1, l2)]
print(compareList(stringList, paramValue)) # -> [False, True, False]
答案 1 :(得分:1)
您想要这样的东西
def comp():
return [stringList[i]==paramValue[i] for i in range(len(paramValue))]
答案 2 :(得分:0)
使用numpy
:
import numpy as np
stringList = np.array(["252.007", "546.658", "252.108"])
paramValue = np.array(["252.017", "546.658", "252.008"])
res=stringList==paramValue
输出:
[False True False]