如何比较 2 个列表并在 Python 中获取 True 或 False 列表? [复制]

Posted

技术标签:

【中文标题】如何比较 2 个列表并在 Python 中获取 True 或 False 列表? [复制]【英文标题】:How to compare 2 lists and to get True or False list in Python? [duplicate] 【发布时间】:2019-05-05 16:37:05 【问题描述】:

假设我有:

A = ['a','b','c','d','e']
B = ['a','b','e']

我想比较这 2 个列表并获得如下信息:

[True, True, False, False, True]

我遇到的问题是列表必须具有相同的长度。但是如果不是怎么比较呢?

我需要更快的方法,因为我正在使用 df 进行 98800 次观察。我在互联网上搜索,但我找不到我需要的东西。

谢谢

【问题讨论】:

[x in B for x in A] ? 我没有得到。我知道'in'方法,但我不确定我是否理解你的答案。 如果B 包含一个独特的项目'f' 怎么办?你能更好地描述你的问题吗?是否仅基于A 中的值进行比较? 如果列表的长度不同,您没有明确说明获取输出的规则应该是什么。试着解释一下,给出示例输入和输出。 我们可以先将B 转换为set 以获得更好的查找时间。 【参考方案1】:

我认为您正在寻找的是来自 Pandas 的 isin() 函数

import pandas as pd
B = ['a','b','e']
df=pd.DataFrame('A': ['a','b','c','d','e']);
df.isin(B)

结果

    A
0   True
1   True
2   False
3   False
4   True

isin()系列版

【讨论】:

【参考方案2】:

如果要查看列表 A 的哪些元素在列表 B 中,可以这样做:

result = [x in B for x in A] 

这称为列表理解。

这相当于:

result = []
for x in A:
    if x in B:
       result.append(True)
    else:
       result.append(False)

【讨论】:

以上是关于如何比较 2 个列表并在 Python 中获取 True 或 False 列表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何比较两个目录并在python中输出更改的文件

如何比较 2 个 iframe 并在视觉上获得差异?

在列表中搜索项目并在 python 中返回 x 个周围项目

比较列表值并选择每天的最大值-Python

如何比较python中的两个列表并返回匹配项

如何在python中拆分文件