python - python中的set操作

标签 python list

我有两个对象列表,例如

L1 = [2,3,4]
L2 = [1,2]

我想要两个不同的列表。

1) 匹配项 2) 不匹配项

我能够像下面这样得到匹配的元素#1

match = [x for x in L1 if x in L2]

但是我怎样才能以有效的方式获取不匹配的元素。

我可以使用 not in 但有没有其他方法可以做到这一点。

谢谢,

最佳答案

您可以使用各种set 方法,例如intersection , difference , symmetric_difference , 和 union

>>> L1 = [2,3,4]
>>> L2 = [1,2]
>>> set(L1).intersection(L2)
{2}
>>> set(L1).difference(L2)
{3, 4}
>>> set(L1).symmetric_difference(L2)
{1, 3, 4}
>>> set(L1).union(L2)
{1, 2, 3, 4}

关于python - python中的set操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28745755/

相关文章:

Python 3.4 不会从文本文件中读取超过一行

python - 我可以在 Python 中收到始终评估为 true 的警告吗?

python - numpy 除法与 RuntimeWarning : invalid value encountered in double_scalars

python - 如何逐行搜索文件,然后将包含特定字符串的行复制到列表中?

替换数据框列表中编号列的 NA

python - Pandas groupby 添加带有交叉引用的行

python - 使用 nosetests 运行 Django 测试

java - 具有来自 List<List<String>> 的频率计数的唯一值

c# - 从同一个列表中选择相似的元素

python - 如何优化代码以从列表列表中删除所有列表中的 n 个位置