python 集合set为什么不能添加list,dict,set,但是可以添加tuple,constant

本文深入探讨了Python中集合(set)与字典(dict)的数据类型特性,解释了为什么集合与字典的键(key)不能使用可变类型如列表(list)和字典(dict),而只能使用不可变类型如元组(tuple)。通过代码示例,清晰地展示了当尝试将可变类型作为集合元素或字典键时,Python会抛出TypeError异常。

由于set中的元素必须是唯一(即hashable类型),因此必须是不可变类型的,
不可变类型:tuple ,constant
可变类型:list dict set
同理字典的key也不能为不可变类型。

所以归根结底,还是可变与不可变类型的问题。

>>> d=set()
>>> d.add({})
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
>>> d
set()
>>> d.add({1:2})
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
a = {1: 2, 2: 3}
>>> list(a)
[1, 2]
>>> set(a)
{1, 2}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值