文章目录
一、元祖
1.什么是元祖
元祖:又被称为只读列表,内部数据可以查询,但是不能修改。所以,列表中的切片操作同样适用于元祖。
与列表不同,元祖将元素写在小括号中 (),以逗号隔开。
格式:
tuple1 = () #建立一个空的元祖
tuple2 = (20,30,) #建立两个元素的元祖
#注意:元祖建立时,最后一个元素后记得写上一个逗号(,),尤其是元祖只有一个元素时。
注释:元祖与列表相似,故不再过多讲解
二、字典(重点)
1.什么是字典(简单介绍)
字典:字典是python中唯一的一种映射类型,简单来说,好比书籍的字典,给与一个简单的名字,从而用来查找到对应的具体内容
字典由大括号 {} 创建,一个字典元素可分为前后两部分,前为可查名称,即字典的 键 ,后为键对应的值,两者以冒号 : 分开,前后两部分合称为一个键值对。
注意:字典内的元素是无序的,且键唯一
2.字典的创建
dic = {} #创建一个空的字典
dic1 = {'name':'Ligang'} #含有一个键值对的字典
dic2 = {'name':'Ligang','age':20} #含有两个键值对的字典
dic3 = {'name':'Ligang','age':20,'hobby':{'PC_game':"LOL",'age':30}} #嵌套有字典的字典
利用dict()方法创建字典
dic4 = dict((('name','Ligang'),('age',20))) #利用dict()方法创建字典,小括号内为一个两两成对的可迭代数列,即可为元祖,可为列表。
3.字典-----------查
1.字典按照键名来查询对应的值
例如:
dic2 = {'name':'Ligang','age':20}
print(dic2['name'])
输出:
Ligang
2.keys() 方法(函数)
keys(): 查找字典中所有的键。
例如:
dic2 = {'name':'Ligang','age':20}
print(list(dic2.keys())) #将查找出的键利用list()转换为列表,方便输出查看
输出:
['name', 'age'] #两个键名
3.values() 方法(函数)
values(): 查找字典中所有键对应的值。
例如:
dic2 = {'name':'Ligang','age':20}
print(list(dic2.values()))
输出:
['Ligang', 20]
4.items() 方法(函数)
items(): 查找字典中所有的键值对。
例如:
dic2 = {'name':'Ligang','age':20}
print(list(dic2.items()))
输出:
[('name', 'Ligang'), ('age', 20)]
4.字典-----------增
1.setdefault() 方法(函数)
setdefault(): 向字典中添加一个键值对,如果字典中已经有了相同的键,则不改动,并返回字典中相应键对应的值。
如果键不存在,则在字典中添加对应的键值对,并返回键对应的值
例如:
dic2 = {'name':'Ligang','age':20}
list1 = dic2.setdefault("age","30")
list2 = dic2.setdefault("hobby","girl")
print(dic2)
print(list1)
print(list2)
输出:
{'name': 'Ligang', 'age': 20, 'hobby': 'girl'}
20
girl
5.字典-----------改
1.根据键修改值
例如:
dic2 = {'name':'Ligang','age':20}
dic2['age'] = 100
print(dic2)
输出:
{'name': 'Ligang', 'age': 100}
2.update() 方法(函数)
update():合并两个字典,如果母字典中含有子字典中相同名称的键,那么母字典对应键的值,将会被子字典对应的值覆盖
如果没有相同名称的键,那么子字典的键值对将会添加进母字典
例如:
dic2 = {'name':'Ligang','age':20} #母字典
dic3 = {'hobby':'girl','age':50} #子字典
dic2.update(dic3)
print(dic2)
print(dic3)
输出:
{'name': 'Ligang', 'age': 50, 'hobby': 'girl'}
{'hobby': 'girl', 'age': 50}
6.字典-----------删
1.clear() 方法(函数)
clear(): 清空当前字典
dic2 = {'name':'Ligang','age':20}
dic2.clear()
print(dic2)
输出:
{} #输出一个空字典
2.del 方法
del : 可删除字典中指定的键值对,也可删除整个字典
例如:
dic2 = {'name':'Ligang','age':20}
del dic2['name']
print(dic2)
del dic2
print(dic2)
输出:
{'age': 20} #输出dic2剩余键值对
NameError: name 'dic2' is not defined #dic2被删除,程序报错
3.pop() 方法(函数)
pop(): 删除指定键值对,并返回键对应的值
例如:
dic2 = {'name':'Ligang','age':20}
dic3 = dic2.pop('age') #变量dic3得到返回age的值 2o
print(dic2)
print(dic3)
输出:
{'name': 'Ligang'}
20
4.popitem() 方法(函数)
popitem(): 删除随机键值对,并以元祖的形式返回删除的键值对
例如:
dic2 = {'name':'Ligang','age':20,'hobby':'girl','dislike':'haha'}
tup = dic2.popitem()
print(dic2)
print(tup)
输出:
{'name': 'Ligang', 'age': 20, 'hobby': 'girl'}
('dislike', 'haha')
7.字典---------一些其他的方法
1.dict.fromkeys() 方法(函数)
dict.fromkeys(): 可以算作一种字典的初始化方法
例如:
dict1 = dict.fromkeys(['protect1','protect2','protect3'],'text')
print(dict1)
输出:
{'protect1': 'text', 'protect2': 'text', 'protect3': 'text'}
#前一序列的每一个元素,都成为一个键,键值都为后一序列的'text'字符串,并组成一个字典
如果后一序列为多个元素组成,则由这多个元素共同组成键的值
例如:
dict1 = dict.fromkeys(['protect1','protect2','protect3'],['text','text2'])
print(dict1)
输出:
{'protect1': ['text', 'text2'], 'protect2': ['text', 'text2'], 'protect3': ['text', 'text2']}
另外!!
如果修改了由dict.fromkeys()初始化后的字典的某个键值对的值,其他键值对,键对应的值也会一同改变!!
例如:
dict1 = dict.fromkeys(['protect1','protect2','protect3'],['text','text2'])
dict1['protect2'][1] = 'text3456'
print(dict1)
输出:
{'protect1': ['text', 'text3456'], 'protect2': ['text', 'text3456'], 'protect3': ['text', 'text3456']}
#此时,所有键值对中,'text2'都被替换成了'text3456'
2.in 与 has_keys() 方法(函数)
has_keys(): 查询键是否存在字典中
但是!!!!在python3版本后,改方法已经被删除
in: 判断键是否存在字典中,存在则返回True
例如:
dic={5:'555',2:'666',4:'444'}
print(5 in dic)
输出:
True
3.sorted() 方法(函数)
sorted() :给键值对,按照键的一定顺序排序
例如:
dic={5:'555',2:'666',4:'444'}
print(sorted(dic.items())) #先使用items()方法取出字典所有键值对,再转换成列表与元祖,最后进行排序
#注意:字典本身是无序的!!!!
输出:
[(2, '666'), (4, '444'), (5, '555')]
8.两种for循环输出键值对的方法
两种方法:
dic1={'name': 'alex', 'age': 18}
for i in dic1:
print(i,dic1[i])
for i,v in dic1.items():
print(i,v)
输出:
name alex
age 18
name alex
age 18