比较两个字符串列表并返回布尔值

时间:2019-12-20 10:23:46

标签: python python-3.x

我正在尝试比较两个字符串列表并返回布尔值。但是总会返回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

3 个答案:

答案 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]
相关问题