Python学习第006课--课后复习

今日是学习python的第006课,本节课主要学习了元组、字典和集合数据类型。
元组类型tuple
1、什么是元组
元组就是一个不可变的列表

2、用途
用于存放多个值,当存放的多个值只有读没有改的需求时,用元组最合适

3、定义方式
在()内用逗号分隔开多个任意类型的值

t=(1,3.1,'aaa',(1,2,3),['a','b'])  # t=tuple(1,3.1,'aaa',(1,2,3),['a','b'])

也可以用来转换数据类型

res=tuple('hello')    #字符串
res=tuple({'x':1,'y':2})   #字典
print(res)
#利用for循环将数值一个个的存入

常用操作和内置方法
优先掌握的操作
1、按索引取值(正向取+反向取):只能取

t=('a','b',1)
print(t[0])
#运行结果
a
t[0]=111
#运行结果
报错,说明不能改值

2、切片(顾头不顾尾,步长)

t=('h','e','l','l','o')
res=t[1:3]
print(res)
print(t)
#运行结果
('e', 'l')
('h', 'e', 'l', 'l', 'o')

3、长度

t=('h','e','l','l','o')
print(len(t))
#运行结果
5

4、成员运算in和not in

t=('h','e','l','l','o')
print('h' in t)
#运行结果
True

5、循环

t=('h','e','l','l','o')
for item in t:
    print(item)
#运行结果
h
e
l
l
o

总结
1、存多个值
2、有序
3、不可变:不可变指的是数值对应的内存地址不可变

t=(1,'a',['x','y','z'])
print(id(t[2]))
print(id(t))
t[2][0]='X'
print(t)
print(id(t))
print(id(t[2]))
#运行结果
2717545866248
2717546660704
(1, 'a', ['X', 'y', 'z'])
2717546660704
2717545866248

掌握的操作
1、index 查找某一个值的索引

t=('a','b','a')
print(t.index('a'))
#运行结果
0
t.index('xxx')
#运行结果
报错
print(t.count('a'))

2、count 统计某一个值有多少个

t=('a','b','a')
print(t.count('a'))
#运行结果
2

字典类型dict
1、用途
用来存放多个(不同种类)的值
2、定义方式
在{ }内用逗号分隔开多个key:value的元素,其中value可以时任意数据类型,而key的功能通常是用来描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(int、float、str、tuple)

d={0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'} # d=dict{0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'}
print(d[(1, 2, 3)])
#运行结果
aaa
d1={[1,2,3]:'aaaaa'}
#运行结果
报错,列表为不可hash类型(可变类型)

除了造字典还具有数据转换功能

d=dict([('k1',1),('k2',2),('k3',3)])
print(d)
#运行结果
{'k1': 1, 'k2': 2, 'k3': 3}
#原理:dict先造一个空字典,然后利用for循环列表取存数值
===============================================
利用for循环转换成字典
l=[('k1',1),('k2',2),('k3',3)]
d={}
for t in l: #t=('k1',1)
    k,v=t
    d[k]=v
print(d)
===============================================
d=dict(l)
print(d) 
===============================================
d=dict(x=1,y=2,z=3)
print(d)

3、常用操作和内置方法
优先掌握的操作
1、按key存取值:可存可取

d={'x':1}
print(d['x'])
#运行结果
1
============================
d={'x':1}
print(id(d))
d['x']=1111  #更改了x的值
print(d)    #运行结果:{'x': 1111}
print(id(d))  #值变了,id没变,证明字典是可变类型
d['y']=2222  #新增了y的值
print(d)   #运行结果:{'x': 1111, 'y': 2222}

2、长度len

d={'x':1,'y':2,'z':3}
print(len(d))
#运行结果
3

3、成员运算in和not in

d={'x':1,'y':2,'z':3}
print(1 in d)
print('x' in d)
#运行结果
False
True
证明字典的成员运算是按照key来的

4、删除:根据key删除

d={'x':1,'y':2,'z':3}
del d['y']
print(d)

res=d.pop('y')
print(d)
print(res)   #返回删除的y的值

res=d.popitem()
print(res)   #随机删除,可证明字典是无序的

5、键keys(),值values(),键值对items()

d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
print(d.keys())
print(list(d.keys()))  #利用for循环取出列表
print(d.values())
print(list(d.values()))  #利用for循环取出列表
print(d.items())
print(list(d.items()))  #利用for循环取出列表
#运行结果
dict_keys(['name', 'age', 'sex', 'hobbies'])
['name', 'age', 'sex', 'hobbies']
dict_values(['egon', 18, 'male', [1, 2, 3]])
['egon', 18, 'male', [1, 2, 3]]
dict_items([('name', 'egon'), ('age', 18), ('sex', 'male'), ('hobbies', [1, 2, 3])])
[('name', 'egon'), ('age', 18), ('sex', 'male'), ('hobbies', [1, 2, 3])]

6、循环

d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
for k in d.keys():
    print(k)
#运行结果
name
age
sex
hobbies
=================================
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
for k in d:    #不加.keys就是默认取key
    print(k)
#运行结果
name
age
sex
hobbies
=================================
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
for v in d.values():
    print(v)
#运行结果
egon
18
male
[1, 2, 3]
=================================
d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
for k,v in d.items(): #k,v=('name', 'egon')
    print(k,v)
#运行结果
name egon
age 18
sex male
hobbies [1, 2, 3]

该类型总结
1、存多个值
2、无序
3、可变

需要掌握的操作
1、get 如果目标值不存在,用get取值也不会报错

d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
v=d.get('name')
print(v)
#运行结果
egon

2、update 更新字典,老字典内没有的数值就新增,老字典内有的数值就改变,以新字典为准

d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
d.update({'x':1,'name':"EGON"})
print(d)

3、fromkeys 需求是快速新造出一个字典,value的初始值全都为None,而key是来自于一个列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值