python如何获取list字典的交集、并集和差集
作者:羊羊猪
在Python编程中,对列表(list)进行去重可通过set运算符法和set函数法实现,多个列表的交、并、差集也能简便操作,此外,字典(dict)的键(keys)和键值对(items)的获取也是常用技巧,这些操作方法不仅提高了代码的简洁性,也增强了数据处理的效率
1. List
Example
a = list([1, 3, 5, 2, 10]) b = list([1, 4, 5, 10, 20])
1.1 set运算符法
# 求交集 list(set(a) & set(b)) # [1, 10, 5] # 求并集 list(set(a) | set(b)) # [1, 2, 3, 4, 5, 10, 20] # 求差集 # a有而b没有 list(set(a) - set(b)) # [2, 3] # b有而a没有 list(set(b) - set(a)) # [4, 20] # 对称差集 list(set(a) ^ set(b)) # [2, 3, 4, 20]
1.2 set函数法
# 求交集 list(set(a).intersection(b)) # [1, 10, 5] # 求并集 list(set(a).union(b)) # [1, 2, 3, 4, 5, 10, 20] # 求差集 # a有而b没有 list(set(a).difference(set(b))) # [2, 3] # b有而a没有 list(set(b).difference(set(a))) # [4, 20] # 对称差集 list(set(a).symmetric_difference(set(b))) # [2, 3, 4, 20]
1.3 多个list的交并差集
a = list([1, 3, 5, 2, 10]) b = list([1, 4, 5, 10, 20]) c = list([2, 4, 1, 5, 7, 10]) # 求交集 list(set(a).intersection(b, c)) # [1, 10, 5] # 求并集 list(set(a).union(b)) # [1, 2, 3, 4, 5, 20, 7, 10] # a中独有而b, c中没有 list(set(a).difference(b, c)) # [3]
2. 字典 dict
Example
a = { 'x' : 1, 'y' : 2, 'z' : 3 } b = { 'w' : 9, 'x' : 5, 'y' : 2 }
2.1 keys
# 交集 a.keys() & b.keys() # 并集 a.keys() | b.keys() # 差集 a.keys() - b.keys() b.keys() - a.keys()
2.2 items (keys, values)
# 交集 a.items() & b.items() # 并集 a.items() | b.items() # 差集 a.items() - b.items() b.items() - a.items()
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。