基本数据类型可变与否总结

基本数据类型可变与否总结

基本数据类型:
  • 数字、字符串、元组、布尔、列表、字典、集合
列表的变:
  • 列表元素的个数可以增加、也可以删除
  • 列表中的指定元素,你也可以随意修改其内容
字典的变:
  • 字典的元素是键值对
  • 键值对的个数可以再增加,也可以删除不要
  • 键是一旦定义不可以修改,不想要的时候必须连同值一块删除
  • 值是可以任意修改的
集合的变:
  • 集合可以新增元素也可以删除元素
  • 集合内的元素一旦定义,不能修改,只能删除后新增需要的
元组的变与不变:
  • 元组一旦定义,元素个数不能再删除或新增
  • 元素内的元素:对于可变类型可以修改(如list),对于不可变类型不能修改(如 int)
字符串的不变:
  • 字符串一旦定义,不可修改
  • 任何的修改都是新增一个变量
数字的不变:
  • 数字类型不可变,说1不2
布尔:
  • 不可变,要么0,要么1
变与不变的另一个判断方法:hash()
  • 可被hash的不可变
  • 不能被hash的可变

列表:可变

>>> a = [1,2,3,4]
>>> hash(a)
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    hash(a)
TypeError: unhashable type: 'list'

字典:可变

>>> a = {"name":"jack","age":18}
>>> hash(a)
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    hash(a)
TypeError: unhashable type: 'dict'

集合:可变

>>> a = {1,2,3,4}
>>> hash(a)
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    hash(a)
TypeError: unhashable type: 'set'

字符串:不可变

>>> a = "jack"
>>> hash(a)
6739665373260742146

数字:不可变

>>> a = 2019
>>> hash(a)
2019

布尔:不可变

>>> a = True
>>> hash(a)
1
元组:比较特殊!
  • 元素都是不可变数据类型,可hash
>>> a=(1,2,3,'jack')
>>> hash(a)
-3041190636402635813
  • 元素存在不可变的数据类型,不可hash
>>> a = (1,2,3,"jack",["jack"],5)
>>> hash(a)
Traceback (most recent call last):
  File "<pyshell#56>", line 1, in <module>
    hash(a)
TypeError: unhashable type: 'list'
总结:
  • 列表、字典、集合是可变的,不可hash
  • 字符串、数字、布尔是不可变的,可hash
  • 元组一般不可变,即不可以修改器元素;但若其元素是可变数据类型,则该元素可以被修改

转载于:https://www.cnblogs.com/liuxu2019/p/11188477.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值