列表,元组与字典

本文深入探讨Python中的列表、元组与字典,讲解它们的创建、操作与使用技巧,帮助读者掌握Python数据结构的核心概念。

Python列表,元组与字典

1.列表

1.1 列表的创建

​ 与Python对象变量一样,使用赋值运算符“=”直接将一个列表赋值给变量,用中括号括起一堆数据就行了,数据之间用逗号隔开,这样一个列表就建立成功了。比如我们建立一个复仇者联盟:

>>>Avengers=['Captain America','Iron Man','Spider Man']
1.2列表的添加

​ 首先,我们可以使用append方法,将元素添加在列表末尾

>>>Avengers.append('Thor')
>>>print(Avengers)
["BatMan","SuperMan","SpiderMan","Thor"]

​ 由此,我们可以看到Thor被加入到了Avenger中。这时又有许多超级英雄要加入到Avenger中,但是append方法无法同时添加多个元素,为了实现这个功能我们可以用到expend()方法在列表末尾添加多个元素:

>>>Avengers.extend(["Black Widow","Hulk","WarMachine"])
['Captain America', 'Iron Man', 'Spider Man', 'Thor', 'Black Widow','Hulk', 'WarMachine']

​ 通过expend方法,我们能将多个英雄同时添加到Avenger中,但有的英雄能力过于强大我们要按照他们的能力来添加进联盟,遇到这个问题,我们就要使用insert方法来随心所欲的将元素插入到列表中:

>>>Avengers.insert(2,"Dr.Strange")
['Captain America', 'Iron Man', 'Dr.Strange', 'Spider Man', 'Thor', 'Black Widow', 'Hulk', 'WarMachine']

好的,通过以上复仇者联盟的建立我们已经基本了解了列表的添加,接下来我们要学习的是列表的删除。

1.3列表的删除

​ 从列表中删除元素,这里可以使用:remove(),del和pop()。这里我们先使用remove()方法来将某个英雄从Avengers中开除:

>>>Avengers.remove("DeadPool")

这里我们把骚贱骚贱的死侍从复联里面踢出去,用remove()踢他的好处是不用知道他在哪里,只要知道他在Avengers里面就行了。(如果删除的元素不在列表中,程序会报错)

​ remove()方法不能删除指定位置的元素,这时我们就要用到del来实现,例如我们使用del来将美队从复联中开除:

>>>del Avengers[0]

注意,del只是一个语句,不是列表的一个方法,所以不必在后面加上()。同时,如果我们要解散整个复仇者联盟,我们可以用del加上列表名来删除。

>>>del Avengers

最后,我们来介绍pop()方法,pop方法默认删除除最好一个元素以外的其它元素,如果你为它加上一个索引值作为参数是,它会删除除这个参数以外的所有元素。

>>>Avengers=["Star Lord","Wolverine","Quake","Thoans"]
>>>Avengers.pop(1)
1.4列表的分片

​ 列表的分片可以让我们从列表中一次性获得多个元素:

>>>Avengers[0:2]

通过这样的操作,我们可以得到索引值为0,1的元素(结束位置的元素不包含)。列表分片只是得到原列表的拷贝,原列表并没有改变。

1.5列表的方法

​ 学习了列表的增删查改后,我们来许学习下列表的其它几个常用的方法。

​ 首先是count()方法,是统计参数在列表出现的次数:

>>>Avengers=["Iron Man","Spider Man","Iron Man"]
>>>Avengers.count("Iron Man")

​ reverse()方法就是将整个列表原地翻转,将最后面的放在最前面,最前面的放到最后

>>>Avengers =["Iron Man","Captain America","Black Widow","Thor","Hulk"]
>>>Avengers.reverse
”Hulk“,"Thor","Black Widow","Captain America","Iron Man"

sort()方法将列表用指定的方法对列表的成员进行从小到大排序,并且不需要参数:

>>>list=[1,3,2,4,7,6,5]
>>>list.sort()
1234567

利用sort方法,我们也可以实现将列表从大到小排列,但要添加参数reverse=true:

>>>list.sort(reverse=true)
7654321

2.元组

​ 学习列表之后,我们见识到了列表功能之强大,现在我们来学习一下与列表功能截然相反的“表亲”——元组。

元组与列表最大的区别就是你可以在列表中随意插入和删除任意元素,而在元组中你不能这么做,元组不可被改变,所以列表中大部分方法在元组中都不能使用。

2.1元组的创建及访问

元组的创建大部分时候都要用到小括号:

>>>tuple1=(1,1,1,1,1,2,2,3,4,5)

元组的访问与列表一样

>>>tuple1(2)
1

同时,我们也可以用分片的方式来访问元组

>>>tupel1[0:3]
1,1,1

列表的标志性符号是中括号([]),元组的标志性符号是逗号(,),小括号只起到了补充的作用,如果你想创建一个空元组,直接使用小括号就可以了。

2.2元组的更新与删除

虽然,元组无法更改,但可以通过分片的方法将元组拆分两部分,然后通过连接操作符(+)连接成新的元组。同理,元组的删除也可以用这种方法间接的删除元组中的元素,也可用del去删除整个元组。

3.字典

字典是除列表之外的另一种可变容器模型,且可存储任意类型对象。字典也是Python中唯一一种映射类型。

字典的每个键值用冒号":“分割,每个键值对之间用逗号”,"分割,整个字典包括在大括号{}中,字典格式如下:

>>>dictionary={key1:value1,key2:value2}
3.1字典的建立

字典的建立与列表一样,直接用赋值运算符“=”然后将元素用大括号“{}”括起来,比如我们建立一个复仇者联盟花名册:

>>>Avengers={"Captain America":"Steve Rogers","Iron Man":"Tony Stark","Spider Man":"Peter Park",""}

另外,注意:字典的键独一无二,但是值可以是任意类型,但必须是不可改变的(比如元组)。

还可以用dict()函数通过已有数据快速建立字典:

>>>TrueName=["Steve Rogers","Tony Stark","Peter Park","Logan"]
>>>Avengers=["Captain America","Iron Man","Spider Man","Wolverine"]
>>>Name=dict(zip(TrueName,Avengers))
>>>print(Name)
{'Steve Rogers': 'Captain America', 'Tony Stark': 'Iron Man', 'Peter Park': 'Spider Man', 'Logan': 'Wolverine'}

或者还可以使用函数dict根据给定的“键——值对”来创建字典:

>>>d=dict(name='Stark',Nickname='Iron Man')
>>>print(d)
{'name': 'Stark', 'Nickname': 'Iron Man'}
3.2字典的访问

​ 学过列表和元组后,我们知道可以使用访问下标的方法来访问元素,但在字典中我们访问的下标是字典的“键”

>>>a={'name':'Stark'}
>>>print(a['name'])
Stark

访问‘键’的方法不是很方便,这里我推荐更加方便和快速的访问字典元素的get()方法,get()指定获取“键”所对应的“值”,“键”不存在的的话就返回指定值,如果不指定就返回None

>>>a={'name':'Stark'}
>>>print(a.get('Steve'))
None
>>>a={'name':'Stark'}
>>>print(a.get('name'))
Stark
>>>a={'name':'Stark'}
>>>print(a.get('Steve','Captain America'))
Captain America

同时,我们也可以使用items()方法返回字典的“键-值”对列表,keys()方法返回“键”列表,value()方法返回“值”列表

3.3字典的添加与修改

​ 字典的添加,我们主要介绍update()方法,使用update()方法一次性把’键-值对’添加进字典中:

>>>a={'Iron Man':'Stark'}
>>>a.update({'Spider Man':'Peter Park'})
>>>print(a)
{'Iron Man': 'Stark', 'Spider Man': 'Peter Park'}

​ 删除可以根据要求来使用不同的del来删除字典中的指定元素”键“对应的元素,或者使用clear()方法来删除字典中的全部元素。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值