Python Set集合类型(2)

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})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值