16.枚举类型
enumerate():函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
name=['Jax','Zed','Yi','Diana']
for index,value in enumerate(name):
print(index,value)
for index,value in enumerate('happy'):
print(index,value)
0 Jax
1 Zed
2 Yi
3 Diana
0 h
1 a
2 p
3 p
4 y
快速交换
a=3
b=2
a,b=b,a
print(a,b)
17.元组
类似列表(当成容量)
特点:
定义的符号:()
远足中的内容不可修改
关键字:tuple
元组定义
t1=()
print(type(t1)) #
t2=('hello',)
print(type(t2))
t3=('aa','bb')
print(type(t3))
元组的写入
import random
list1=[]
for i in range(10):
ran=random.randint(1,20)
list1.append(ran)
print(list1)
t=tuple(list1)
print(t)
list1=[1,2]
list1.append((1,2))
print(list1)
list1.remove((1,2))
print(list1)
元组的查询
print(t[:])
最大值 最小值 求和
print(max(t))
print(min(t))
print(sum(t))
元组相较于列表,没有增删改功能。
元组中的函数
**index()**从元组中找出XX下标的位置
**count()**从元组中数出XX的个数
元组的拆包与装包(略)
拆包与装包视具体而定
散的装,不散的拆
t1=(2,5,8,9,7)
a,*_,c=t1
print(a,c,_)
a,c,*_=t1
print(a,c,_)
a,b,*c=t1
print(a,b,c)
t2=(9,)
a,*b=t2
print(a,b)
print(*b)
x,*y=[4,5,6]
print(y)
print(*y)
print(*[4,6,8])
18.字典
特点:
符号:{}
关键字:dict
保存的元素是:key::value
列表
元组
字典
[]
()
{}
element
element
key::value 2
定义:
dict1={}
dict2=dict() #空字典 list1=list()空列表 tuple1=tuple()空元组
dict3={'ID':'46456456556515615','name':'lucky','age':18}
dict4=dict([('name','lucky')]) #列表里套元组可以转字典
print(dict4)
dict5=dict([(1,2),(3,4),(5,6),(7,8)])
print(dict5)
对象内容较少时可以用字典保存
字典的增删改查
增加或修改
格式:dict[key]=value
dict1={}
dict1['name']='Jax'
print(dict1)
如果有同名的则发生值的覆盖
dict1={}
dict1['name']='Jax'
print(dict1)
dict1['name']='Yi'
print(dict1)
查询
dictionary={'Jax':100,'Yi':93,'Zed':99}
print(dictionary['Jax'])
遍历
单独遍历字典的结果是:取出字典的Key
dictionary={'Jax':100,'Yi':93,'Zed':99}
for i in dictionary:
print(i)
字典里面的函数:
items() values() keys()
字典的items操作
dictionary={'Jax':100,'Yi':93,'Zed':99}
print(dictionary.items())
for i in dictionary.items():
print(i)
for key,value in dictionary.items():
if value >95:
print(key)
items()将字典转化为列表元组,在写for循环的时候可以用key,value分别代表元组中的两个值
.values()操作
取出列表中的所有值
dictionary={'Jax':100,'Yi':93,'Zed':99}
score=dictionary.values()
print(score)
total=sum(dictionary.values())
average=total/len(dictionary.values())
print(total,average)
.keys()操作
同.values()操作操作
dict={'Jax':100,'Yi':93,'Zed':99}
names=dict.keys()
print(names)
for name in names:
print(name)
不允许把取出的value()或者key()当成列表去索引
内置函数.get()
根据key获取值,如果key在字典中没有存在则报出keyError
dict[key]=value
get(key)–> value 如果取不到值则不会报错,则返回None
get(key,default)–>value 如果能够取到值则返回字典中的值,如果取不到则返回default的值
dict={'Jax':100,'Yi':93,'Zed':99}
#取不到则不会报错,返回None
#取到了返回字典中的值
print(dict.get('Jax'))
print(dict.get('QAQ'))
删除操作
同列表,列表根据下标找元素,列表根据关键字找元素
del
dict={'Jax':100,'Yi':93,'Zed':99}
del dict['Jax']
print(dict)
.remove()不存在
.pop()
pop删除成功,则返回对应key的value值
dict={'Jax':100,'Yi':93,'Zed':99}
result=dict.pop('Jax')
print(result)
print(dict)
.popitem()
从末尾删除,返回key:value
dict={'Jax':100,'Yi':93,'Zed':99}
result=dict.popitem()
print(result)
print(dict)
.clear()
清空字典
dict={'Jax':100,'Yi':93,'Zed':99}
dict.clear()
print(dict)
其他的内置函数
.update()
相当于加,若有相同key则覆盖
dict1={'Jax':100,'Yi':93,'Zed':99}
dict2={'Oriana':43,'Annie':63,'Zed':98}
result=dict1.update(dict2)
print(result)
print(dict1)
.fromkeys(seq)
把一个列表形式转换为字典形式,若没有指定的value则用None
list1=['a','b','c']
new_dict1=dict.fromkeys(list1)
print(new_dict1)
new_dict=dict.fromkeys(list1,10)
print(new_dict)