四种数据类型都在其中存储多个值。可能看到的唯一区别是用于括起值的特殊符号。
li = [ 1 , 2 , 3 , 4 ] -> 列表 use [] tp = ( 1 , 2 , 3 , 4 ) -> 元组 use () st = { 1 , 2 , 3 , 4 } -> 集合 use { } di = { 1 : 10 , 2 : 20 } -> 字典使用 {} 但包含key:value pairs
排序指定数据类型是否保持与给定相同的顺序或每次更改(无序)。
列表、元组和字典是有序的。
集合是无序的。
注意:在Python 3.7之前,字典是无序的。
li = ['A', 'B', 'C']tp = ('A', 'B', 'C') st = {'A', 'B', 'C'} di = {'A': 10, 'B': 20, 'C': 30}print(li)print(tp)print(st)print(di)
输出:['A', 'B', 'C'] ('A', 'B', 'C') {'A', 'C', 'B'} {'A': 10, 'B ':20,'C':30}
从一组元素中访问单个元素称为索引。可以使用方括号并在其中提及索引值(从 0 开始)来完成索引。索引指定数据类型是否可以索引。
列表和元组可以被索引。
集合无法建立索引。
字典可以设置键,因为它们有键和值。但它类似于索引。
li = [ 'A' , 'B' , 'C' ] tp = ( 'A' , 'B' , 'C' ) di = { 'A' : 10 , 'B' : 20 , 'C' : 30 } print (li[ 0 ]) print (tp[ 1 ]) print (di[ 'C' ])
输出:AB 30
可变性指定数据类型的值最初是否可以修改。它将数据类型分为可变和不可变。
列表、集合和字典是可变的并且可以修改。
元组是不可变的并且不能被修改。
注意:设定值不能修改。但我们可以添加或删除值。由于同一内存位置发生更改,它仍然被认为是可变的。
可变类型——示例
li = [ 'A' , 'B' , 'C' ] li[ 0 ] = 'D' print (li)
输出:['D','B','C']
不可变类型 — 示例
tp = ( 'A' , 'B' , 'C' ) tp[ 0 ] = 'D'打印(tp)
输出:类型错误:“元组”对象不支持项目分配
另一个关键区别是检查类型是否允许重复其元素。
列表和元组允许重复值。
集合不允许有重复的值。如果您尝试输入重复项,它将只接受一个值并忽略重复项。
字典允许在其值中出现重复项,但不允许在其键中出现重复项。键必须是唯一的。
li = ['A', 'B', 'C', 'A']tp = ('A', 'B', 'C', 'A') st = {'A', 'B', 'C', 'A'} di = {'A': 10, 'B': 20, 'C': 10}print(li)print(tp)print(st)print(di)
输出:['A', 'B', 'C', 'A'] ('A', 'B', 'C', 'A') {'C', 'B', 'A'} { “A”:10,“B”:20,“C”:10}
在键中使用重复项将保留键的顺序并采用给定的最后一个值。
di = { 'A' : 10 , 'B' : 20 , 'A' : 20 }print(di)
输出:{'A':20,'B':20}
某些数据类型允许可变值和不可变值,但某些类型仅允许其中的不可变值。数据类型可以基于此进行分类。
列表和元组允许可变和不可变值。
集合只允许不可变的值。这意味着由于其可变性,一个集合甚至不能包含另一个集合。
字典只允许键中的不可变类型。字典值可以是可变的和不可变的。
列表和元组 — 示例
li = [( 30 , 40 ), [ 10 , 20 ]] tp = (( 30 , 40 ), [ 10 , 20 ])print(li)print(tp)
输出:[(30, 40), [10, 20]] ((30, 40), [10, 20])
集合 — 示例
st = { 10 , 20 , { 30 , 40 }}print(st)
输出:类型错误:不可散列的类型:'set'
该错误表明集合不可散列。所有不可散列类型都是可变的,所有可散列类型都是不可变的。
字典 — 示例
di = { 'A' : [ 10 ], [ 2 ]: 'B' }打印(di)
输出:类型错误:不可散列的类型:“列表”
联系客服