说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
有以下三个每个元素由元组构成的列表,需求为将所有元组中的所有元素整体进行去重,得到一个不重复的数据。
line1 = [('a','b'),('a','中文'),('b','中文')]
line2 = [('a','B'),('a','中文'),('B','中文三')]
line3 = [('F','b'),('F','中文三'),('b','中文三')]
利用 ChainMap 将三个变量的数据连接,然后利用 reduce 对整体序列利用集合的特性进行去重合并操作。
from collections import ChainMap
from functools import reduce
# 参考:https://gairuo.com/p/python-chain-map
linked = ChainMap(line1, line2, line3)
list(linked)
# 输出
[('F', 'b'),
('F', '中文三'),
('b', '中文三'),
('a', 'B'),
('a', '中文'),
('B', '中文三'),
('a', 'b'),
('b', '中文')]
# 参考:https://gairuo.com/p/python-reduce
reduce(lambda a,b: set(a) | set(b), linked)
# {'B', 'F', 'a', 'b', '中文', '中文三'}
(完)
更新时间:2022-03-17 23:54:25 标签:python 去重 元组 列表