- 找出字典中的相同与不同
# -*- coding: utf-8 -*-
# @Time : 2024/7/17 下午8:57
# @Author : s
a = {
'x': 1,
'y': 2,
'z': 3
}
b = {
'w': 10,
'x': 11,
'y': 2
}
# 找a,b 相同的key
common_key = a.keys() & b.keys()
# 找在a不在b
diff_akey = a.keys() - b.keys()
# 找a,b相同的key,value
common_k_v = a.items() & b.items()
print(common_key)
print(diff_akey)
print(common_k_v)
- 从序列中移除重复项并保持元素间的顺序
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2024/7/17 下午9:41
# @Author : s
def dedupe(items):
"""可哈希"""
seen = set()
for item in items:
if item not in seen:
yield item
seen.add(item)
def dedupe2(items, key=None):
"""不可哈希"""
seen = set()
for item in items:
val = item if key is None else key(item)
if val not in seen:
yield item
seen.add(val)
if __name__ == '__main__':
a1 = [1, 5, 2, 1, 9, 1, 5, 10]
print(list(dedupe(a1)))
a2 = [{'x': 1, 'y': 2}, {'x':1, 'y':3}, {'x':1, 'y':2}, {'x':2, 'y':4}]
print(list(dedupe2(a2, key=lambda d: (d['x'],d['y']))))
print(list(dedupe2(a2, key=lambda d: d['x'])))
如果只是去除重复项,并不关心元素间的顺序,最简单的方法:set([1,2,3,2,3,5])
结果为:{1,2,3,5}
网友评论