首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python第八课 元组与字典

元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

>>>'et'7799.9

'et'7799.9访问元组

修改元组

说明:python中不允许修改元组的数据,包括不能删除其中的元素。

元组的内置函数count, index

index和count与字符串和列表中的用法相同

>>>'a''b''c''a''b'

>>>'a'13#注意是左闭右开区间

""1in

notin

3

2

字典介绍

想一想:

如果有列表

'xiaoZhang''xiaoWang''xiaoLi'

需要对"xiaoWang"这个名字写错了,通过代码修改:

1'xiaoxiaoWang'

如果列表的顺序发生了变化,如下

'xiaoWang''xiaoZhang''xiaoLi'

此时就需要修改下标,才能完成名字的修改

'xiaoxiaoWang'

答:

字典

另一个场景:

学生信息列表,每个学生信息包括学号、姓名、年龄等,如何从中找到某个学生的信息?

>>>1001"王宝强"241002"马蓉"231005"宋喆"24

循环遍历? No!

生活中的字典

软件开发中的字典

变量info为字典类型:

说明:

字典和列表一样,也能够存储多个数据

列表中找某个元素时,是根据下标进行的

字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')

字典的每个元素由2部分组成,键:值。例如 'name':'班长','name'为键,'班长'为值

根据键访问值

'name'

'address'

结果:

若访问不存在的键,则会报错:

""1in

'age'

在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

>>>#'age'键不存在,所以age为None

'NoneType'

>>>'age'18#若info中不存在'age'这个键,就返回默认值18>>>18

字典的常见操作1

修改元素

字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改

demo:

'请输入新的学号'

'id'

'修改之后的id为%d:''id'

结果:

添加元素

demo:访问不存在的元素

'name''班长''sex''f''address''地球亚洲中国北京'

'id为:%d''id'

结果:

如果在使用变量名['键'] = 数据时,这个“键”在字典中,不存在,那么就会新增这个元素

demo:添加新的元素

'name''班长''sex''f''address''地球亚洲中国北京'

# print('id为:%d'%info['id'])#程序会终端运行,因为访问了不存在的键

'请输入新的学号'

'id'

'添加之后的id为:%d''id'

结果:

删除元素

对字典进行删除操作,有一下几种:

del

clear()

demo:del删除指定的元素

'name''班长''sex''f''address''地球亚洲中国北京'

'删除前,%s''name'

del'name'

'删除后,%s''name'

结果为:

demo:del删除整个字典

'name''monitor''sex''f''address''China'

'删除前,%s'

del

'删除后,%s'

结果

demo:clear清空整个字典

'name''monitor''sex''f''address''China'

'清空前,%s'

'清空后,%s'

结果

字典的常见操作2

测量字典中,键值对的个数

返回一个包含字典所有KEY的列表

返回一个包含字典所有value的列表

返回一个包含所有(键,值)元祖的列表

has_key(python3已经删除此办法)

dict.has_key(key)如果key在字典中,返回True,否则返回False

若python3 想使用此办法 可以用 for keys indict 代替

运行结果:

公共方法

运算符

+

>>>"hello ""itcast"'hello itcast'>>>1234

1234>>>'a''b''c''d'

'a''b''c''d'*

>>>'ab'4'ababab'>>>124

'a''b''a''b''a''b''a''b'in

>>>'itc'in'hello itcast'True>>>3in12False>>>4in1234True>>>"name"in"name""Delron""age"24True

注意,in在对字典操作时,判断的是字典的键

python内置函数

Python包含了以下内置函数

cmp

>>>"hello""itcast"

1>>>"itcast""hello"1>>>"itcast""itcast">>>1234

1>>>12111>>>12123

1>>>"a"1"b"1

1>>>"a"2"a"11>>>"a"2"a"2"b"1

1

注意:cmp在比较字典数据时,先比较键,再比较值。

len

>>>"hello itcast"12>>>12344>>>342>>>"a"1"b"22

注意:len在操作字典数据时,返回的是键值对个数。

maxdel

del有两种用法,一种是del加空格,另一种是del()

>>>1>>>1>>>del>>>

""1in

'a'isnot>>>'a''b'>>>del>>>

'b'>>>del>>>

""1in

'a'isnot多维列表/元祖访问的示例

23

2

""1in

3

""1in

23453

3

""1in

'int'isnot

引用

想一想

>>>1>>> >>>1>>>2>>>2请问此时b的值为多少?

>>>12>>> >>>

123请问此时b的值又是多少?引用

在python中,值是靠引用来传递来的。

我们可以用id()来判断两个变量是否为同一个值的引用。我们可以将id值理解为那块内存的地址标示。

>>>#注意两个变量的id值相同13033816>>>2>>>#注意a的id值已经变了13033792

123

>>>#注意a与b始终指向同一个地址139935018544808

可变类型与不可变类型

可变类型,值可以改变:

列表 list

字典 dict

不可变类型,值不可以改变:

数值类型 int, long,bool, float

字符串 str

元组 tuple

怎样交换两个变量的值?

作业

1.编程实现对一个元素全为数字的列表,求最大值、最小值

2.编写程序,完成以下要求:

统计字符串中,各个字符的个数

比如:"helloworld" 字符串统计的结果为: h:1 e:1 l:3 o:2 d:1 r:1 w:1

3.编写程序,完成以下要求:

完成一个路径的组装

先提示用户多次输入路径,最后显示一个完成的路径,比如

4.编写程序,完成“名片管理器”项目

需要完成的基本功能:

1、添加名片

2、删除名片

3、修改名片

4、查询名片

5、退出系统

程序运行后,除非选择退出系统,否则重复执行功能

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180414G19ZNZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券