分享

两分钟彻底明白Python:列表、元组、集合、字典

 图书馆收藏文库 2024-05-11 发布于山东

四种数据类型都在其中存储多个值。可能看到的唯一区别是用于括起值的特殊符号。

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)
输出:类型错误:不可散列的类型:“列表”
两分钟彻底明白Python:列表、元组、集合、字典

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多