如何比较 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 列表? [复制]的主要内容,如果未能解决你的问题,请参考以下文章