人生苦短,我用Python(4)

1、创建数值元组:

在Python中,使用tuple()函数直接将range()函数循环出来的结果转换为数值元组。

tuple(data)    #tuple()函数的基本语法  data表示可以转换为元组的数据,其类型可以是range对象、字符串、元组或其他可迭代类型的数据。

(1)创建一个10~20(不包括20)所有偶数的元组。

double=tuple(range(10,20,2))
print(double)

人生苦短,我用Python(4)

 2、删除元组:

对于已经创建的元组,不再使用时,可以使用del语句将其删除。语法格式如下。

del tuplename    #tuplename 表示要删除元组的名称

del语句在实际开发时,并不常用,因为Python自带的垃圾回收机制会自动销毁不用的元组,所以即使我们不手动将其删除,Python也会自动将其回收。

team=["勇士","掘金","开拓者"]
del team

3、查看元组中的元素:

在输出全部元组元素时,是包括左右两侧的小括号的,如果不想输出全部的元素,可以通过索引查看指定的元素。

元组也可以使用切片的方式来获取指定的元素,例如访问元组的前三个元素。

print(title[:3])    #title表示的是元组

人生苦短,我用Python(4)

(1)例题:使用for循环列出咖啡馆里的咖啡名称,在每一个咖啡名字后都加上“咖啡”名称。

coffee=(‘卡布奇诺‘,‘曼特宁‘,‘摩卡‘,‘哥伦比亚‘,‘蓝山‘)
for name in coffee:
    print(name+"咖啡",end=" ")

人生苦短,我用Python(4)

(2)将coffee里的“摩卡”替换成“拿铁”。但是以下的代码是会出错的

coffee=(‘卡布奇诺‘,‘曼特宁‘,‘摩卡‘,‘哥伦比亚‘,‘蓝山‘)
coffee[2]=‘拿铁‘
print(coffee)

人生苦短,我用Python(4)

因为元素是不可变序列,我们不能对元组的单个元素值进行修改,如果要更新元组里的数据要重新赋值。

(3)对元组进行连接组合。

title=("库里","利拉德","欧文")
print("原组合:",title)
title=title+("沃克","威少")
print("新组合:",title)
title=title+("隆多",)
print("新组合:",title)

人生苦短,我用Python(4)

   及逆行元组连接时,连接的内容必须都是元组,不能将元组和字符串或者列表进行连接。如果要连接的元组只有一个元素时,一定要记得在元素后面加上逗号。

 4、元组推导式:

元组推导式和列表推导式类似,只是将列表的“()”换成“[ ]”

number=(i for i in range(4))
for i in number:
    print(i,end=" ")
print(tuple(number))

人生苦短,我用Python(4)

 5、元组和列表的区别:

元组和列表都属于序列,类型不受限制。列表类似用铅笔在纸上写下的东西,写错了还可以擦掉;元组则类似于钢笔写下的歌词,写错就擦不掉了,只能换纸重写。

列表和元组的区别主要体现在以下几个方面:

(1)列表属于可变序列,它的元素可以随时修改或者删除;元组属于不可变序列,其中的元素不可以修改,除非整体替换。

(2)列表可以使用append()、extend()、insert()、remove()和pop()等方法实现添加和修改列表元素,而元组没有这几个方法,所以不能向元组中添加和修改元素。同样,元组也不能删除元素。

(3)列表可以使用切片访问和修改列表中的元素。元组也支持切片,但是它只支持通过切片访问元组中的元素,不支持修改。

(4)元组比列表的访问和处理速度快,所以当只是需要对其中的元素进行访问,而不进行任何修改时,建议使用元组。

(5)列表不能作为字典的键,而元组则可以。

4.4 字典

在Python中,字典与列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以“键-值对”的形式存放的。

类似新华字典,可以把拼音和汉字关联起来,通过音节表可以快速找到想要的汉字,音节表相当于键(key),而对应的汉字相当于值(value)。键是唯一的,而值可以有多个。

1、字典的特征:

(1)通过键而不是通过索引来读取

字典有时也称为关联数组或者散列表(hash)。它是通过键将一系列的值联系起来的,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。

   (2)字典是可变的,并且可以任意嵌套

字典可以在原处增长或者缩短(无须生成一个副本)。并且它支持任意深度的嵌套(即它的值可以是列表或者其他的字典)。

(3)字典中的键必须唯一

不允许同一个键出现两次,如果出现两次,则后一个值会被记住。

(4)字典中的键不可变

字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表。

2、字典的创建和删除:

定义字典时,每个元素都包含两个部分“键”和“值”。以水果名称和价格的字典为例,键为水果名称,值为水果价格。

创建字典时,在“键”和“值”之间使用冒号分隔,相邻两个元素使用逗号分隔,所有元素放在一对“{ }”中。

dictionary={‘key1‘:‘value1‘,‘key2‘:‘value2‘...}  dictionary:表示字典名称。  key1、key2:表示元素的键,必须是唯一的且不可变,可以是字符串、数字或者元组。  value1、value2:表示元素的值,可以是任何数据类型,不是必须唯一的。

(1)创建一个通讯录的字典:

dictionary={‘QQ‘:‘123456‘,‘联系电话‘:‘123456789‘,‘住址‘:‘北京‘}
print(dictionary)

人生苦短,我用Python(4)

   (2)同列表和元组一样,也可以创建空字典,在Python中,可以使用下面两种方法创建空字典。

dictionary={}
或
dictonary=dict()

Python中的dict() 方法除了可以创建一个空字典外,还可以通过已有数据快速创建字典,主要表现为以下两种方式:

①通过映射函数创建字典:

dictionary=dict(zip(list1,list2))  dictionary:表示字典名称  zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想获取元组,可以将zip对象使用tuple()函数转换为元组;        如果想获取列表,则可以使用list()函数将其转换为列表。
verson1=["勇士","火箭","雷霆"]
verson2=["库里","哈登","保罗"]
verson=dict(zip(verson1,verson2))
print(verson)

人生苦短,我用Python(4)

   ②通过给定的”键-值对“创建字典

dictionary=dict(key1=value1,key2=value2...)  dictionary:表示字典名称  key1,key2:表示元素的键,必须是唯一的且不可变,例如可以是字符串、数字或者元组。  value1,value2:表示元素的值,可以是任何数据类型,不是必须唯一的。
verson=dict(勇士=‘库里‘,火箭=‘哈登‘,雷霆=‘保罗‘)
print(verson)

人生苦短,我用Python(4)

   (3)在Python中,可以适应dict对象的fromkeys()方法创建值为空的字典:

dictionary=dict.fromkeys(list1)
    dictionary:表示字典名称
    list1:作为字典的键的列表
team=["开拓者","独行侠","76人","凯尔特人"]
dictionary=dict.fromkeys(team)
print(dictionary)

人生苦短,我用Python(4)

   (4)删除字典

同列表和元组一样,不再需要的字典也可以使用del命令删除整个字典。

del diciionary    #dictionary表示字典名称

另外,如果只想删除字典的全部元素,可以使用字典对象的clear()方法实现,执行clear()方法后,原字典将变为空字典。

dictionary.clear()

人生苦短,我用Python(4)

还可以使用地点对象pop()方法删除并返回指定”键“的元素,以及使用字典对象的popitem()方法删除并返回字典中的一个元素。

3、通过键值对访问字典

在使用字典时,很少直接删除它的内容,一般需要根据指定的键得到相应的结果。在Python中访问字典的元素可以通过下标的方式实现,与列表和元组不同,这里的下标不是索引号,而是键。

 人生苦短,我用Python(4)

使用if语句判断键是否存在。

人生苦短,我用Python(4)

   为了解决因键值不存在而抛出异常,可以为get()方法设置默认值,这样当指定的键不存在时,得到结果就是指定的默认值。

 人生苦短,我用Python(4)

相关推荐