1. 获取列表的唯一元素
从列表中获取唯一元素的最佳方法是将其转换为集合。
例如:
restaurants = [“McDonald’s”, “Burger King”, “McDonald’s”, “Chicken Chicken”]
unique_restaurants =set(restaurants)
print(unique_restaurants)
输出:
{‘Burger King’, “McDonald’s”, ‘Chicken Chicken’}
请注意,该集合与原始列表的顺序不同; 那是因为集合是无序的。 这可以很容易地用 Python 的内置列表函数转换回一个列表,给出另一个列表是与原始列表相同但没有重复的列表。
list(unique_restaurants)
输入列表元素为: [‘Chicken Chicken’, “McDonald’s”, ‘Burger King’]
使用Set将列表中重复元素删除,再使用list函数转换回来。
list(set(restaurants))
2. Set集合嵌套Set集合
不能直接嵌套:
{{1,2}, {3,4}} ,如这种方式异常TypeError: unhashable type: ‘set’
正确方式使用frozenset
{frozenset({1, 2}), frozenset({3, 4})}
3. 集与多集
集合是不同元素的无序集合。 但有时我们希望使用无序的集合不一定不同的元素并跟踪元素的多样性。
setA = {‘a’,‘b’,‘b’,‘c’}
print(setA)
输出:{‘b’, ‘a’, ‘c’}
listA = [‘a’,‘b’,‘b’,‘c’]
print(listA)
输出:[‘a’, ‘b’, ‘b’, ‘c’]
但是列表数据结构引入了额外的不必要的排序,这会减慢我们的计算速度。
为了实现多集合,Python 提供了集合模块中的 Counter 类
from collectionsimport Counter
counterA = Counter([‘a’,‘b’,‘b’,‘c’])
print(counterA)
输出:
Counter({‘b’: 2, ‘a’: 1, ‘c’: 1})