高端品牌网站建设有哪些,网站优化千牛帮,凡客之家下载,免费个人推广引流平台Python#xff1a;列表、元组、集合、字典#xff0c;数据类型之间的 5 个差异 1. 相同点2. 不同点2.1 排序2.2 索引2.3 可变性2.5 允许的类型2.4 允许重复 源码 这篇博客将介绍列表、元组、集合、字典#xff08;lists, tuples, sets, and dictionaries#xff09;数据类型… Python列表、元组、集合、字典数据类型之间的 5 个差异 1. 相同点2. 不同点2.1 排序2.2 索引2.3 可变性2.5 允许的类型2.4 允许重复 源码 这篇博客将介绍列表、元组、集合、字典lists, tuples, sets, and dictionaries数据类型的5个差异包括order排序、index索引、 Mutability可变性、Duplicates Allowed允许重复、Types Allowed 允许的类型
1. 相同点
都可以存储多个值唯一差别是括起来的特殊符号
2. 不同点
五个关键差异使每种数据类型都以某种方式有所帮助。差异基于-order排序、index索引、 Mutability可变性、Duplicates Allowed允许重复、Types Allowed 允许的类型。
2.1 排序
列表、元组和字典是有序的。 set是无序的。 注意Python 3.7 之前的字典是无序的。
2.2 索引
从一组元素中访问单个元素称为索引。可以使用方括号并在其中提及索引值从 0 开始来完成索引。索引指定数据类型是否可以索引。
列表和元组可以建立索引。 set无法建立索引。 字典的键类似于索引。
2.3 可变性
可变性指定数据类型的值最初是否可以修改。它将数据类型分为可变和不可变。
列表、set和字典是可变的并且可以修改。元组是不可变的并且不能被修改。 注意set值不能修改。但可以添加或删除值。由于同一内存位置发生更改它仍然被认为是可变的。 字典的值是可变的key是不可变的但可以增加删除key
2.5 允许的类型
某些数据类型允许可变值和不可变值但某些类型仅允许其中的不可变值。数据类型可以基于此进行分类。
2.4 允许重复
另一个关键区别是检查类型是否允许重复其元素。
列表和元组允许重复值。 set不允许重复值。如果尝试输入重复项它将只接受一个值并忽略重复项。 字典允许在其值中出现重复项但不允许在其键中出现重复项。键必须是唯一的。 列表和元组允许可变和不可变值。 set只允许不可变的值。一个set甚至不能包含另一个set。 字典只允许键中存在不可变类型。字典值可以是可变的和不可变的。
源码
# lists, tuples, sets, and dictionaries差别
# python python_collections.py# 1. 都可以存储多个值唯一差别是括起来的特殊符号
# 2. 主要差异 五个关键差异使每种数据类型都以某种方式有所帮助。差异基于-order排序、index索引、 Mutability可变性、Duplicates Allowed允许重复、Types Allowed 允许的类型。def printA(li, tp, st, di):print(li)print(tp)print(st)print(di)print()li [1, 2, 3, 4] # Lists use []
tp (1, 2, 3, 4) # Tuples use ()
st {1, 2, 3, 4} # Sets use {}
di {1: 10, 2: 20} # Dictionaries use {} but contain key:value pairs
printA(li, tp, st, di)## 2.1 排序列表、元组和字典是有序的。 set是无序的。 注意Python 3.7 之前的字典是无序的。
li [A, B, C]
tp (A, B, C)
st {A, B, C}
di {A: 10, B: 20, C: 30}
printA(li, tp, st, di)## 2.2 索引从一组元素中访问单个元素称为索引。可以使用方括号并在其中提及索引值从 0 开始来完成索引。索引指定数据类型是否可以索引。列表和元组可以建立索引。 set无法建立索引。 字典可以设置键因为它们有键和值。但它类似于索引。
li [A, B, C]
tp (A, B, C)
di {A: 10, B: 20, C: 30}print(li[0])
print(tp[1])
print(di[C])## 2.3 可变性 可变性指定数据类型的值最初是否可以修改。它将数据类型分为可变和不可变。 列表、set和字典是可变的并且可以修改。元组是不可变的并且不能被修改。 注意set值不能修改。但可以添加或删除值。由于同一内存位置发生更改它仍然被认为是可变的。
# 可变类型
li [A, B, C]
li[0] Dprint(li)# 不可变类型
tp (A, B, C)
# tp[0] D
# TypeError: tuple object does not support item assignment## 2.4 允许重复 另一个关键区别是检查类型是否允许重复其元素。 列表和元组允许重复值。 set不允许重复值。如果您尝试输入重复项它将只接受一个值并忽略重复项。 字典允许在其值中出现重复项但不允许在其键中出现重复项。键必须是唯一的。
li [A, B, C, A]
tp (A, B, C, A)
st {A, B, C, A}
di {A: 10, B: 20, C: 10}printA(li, tp, st, di)# 使用相同的key取最后一个设置的值
di {A: 10, B: 20, A: 20}
print(di)## 2.5 允许的类型 某些数据类型允许可变值和不可变值但某些类型仅允许其中的不可变值。数据类型可以基于此进行分类。
# 列表和元组允许可变和不可变值。 set只允许不可变的值。这意味着由于其可变性一个set甚至不能包含另一个set。字典只允许键中存在不可变类型。字典值可以是可变的和不可变的。
li [(30, 40), [10, 20]]
tp ((30, 40), [10, 20])print(li)
print(tp)# set不可变但可以插入/移除元素
# 该错误表明set不可散列unhashable。所有不可散列类型都是可变的所有可散列类型都是不可变的。
# st {10, 20, {30, 40}}
# print(st)
# TypeError: unhashable type: set# Dict同理值可变key不可变
# di {A: [10], [2]: B}
# print(di)
# TypeError: unhashable type: list