想必有前面一些基础知识打底,小伙伴应该对接下来的学习有信心了,前面的都比较基础,有c基础的同学可能更好理解,不过也没关系博主写的都是干货哦,只要你多看,多敲代码,熟能生巧哦。
一.字典定义
1.1定义
定义:在python中,字典就是一系列键值对,每个键都与一个值相关联,你可以使用键来访问相关联的值。与键相关联的可以是数、字符串、列表、乃至字典。事实上,可将任何python对象用作字典中的值。
1.2语法
语法:
变量 = {'键1':'值1',
'键2':'值2',
'键3':'值3',
...
}
ps:最简单的字典就是只有一个键值对,本文例子以python教材中的外星人为例。
二.使用字典
2.1访问字典中的值
alien = {'color':'green',
'points':5,
'x_position':0,
'y_position':25,}
print(alien['color'])
print(alien['points'])
print(alien)
2.2添加键值对
键值对的添加就是利用赋值语句,依次从末尾添加,稍微加深就是循环之类的。
2.2.1语法 :
字典变量['键'] = 值
>>> alien = {'color':'green','points':5,}
>>> print(alien)
{'color': 'green', 'points': 5}
>>> alien['x_position'] = 0
>>> alien['y_position'] = 25
>>> print(alien)
{'color': 'green', 'points': 5, 'x_position': 0, 'y_position': 25}
2.2.2tips:可以先创建一个空字典,也可以往进添加键值对。
>>> alien ={}
>>> print(alien)
{}
>>> alien['color'] = 'green'
>>> alien['x_position'] = 0
>>> print(alien)
{'color': 'green', 'x_position': 0}
2.2.3 修改字典中的值
就是利用赋值语句,进行键值对的覆盖即可。
alien = {'color':'green',}
print(alien)
alien['color'] = 'yellow'
print(alien)
2.3删除键值对
对于字典中不在需要的信息,可以使用 del 语句进行永久删除,删除后,该键值的键与值对同时消失。
2.3.1语法:
del 字典变量['键']
>>> alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
>>> print(alien)
{'color': 'green', 'points': 5, 'x_position': 0, 'y_position': 25}
>>> del alien['x_position']
>>> del alien['y_position']
>>> print(alien)
{'color': 'green', 'points': 5}
2.4使用get()访问值
2.4.1说明:
当你访问的键在字典中不存在时就会报错,但当你使用get()访问时,没有键的话则返回一个默认值。
>>> alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
>>> print(alien['hhh'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'hhh'
2.4.2语法
get('键','没有的话返回这段话!')
练习:
>>> alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
>>> print(alien['hhh'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'hhh'
>>> print(alien.get('hhh','没有的话返回这句话!'))
没有的话返回这句话!
三.遍历字典
3.1使用items()访问键值对
"""声明两个变量,key(键),value(值)"""
alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
for key,value in alien.items():
print(f"key:{key}")
print(f"value:{value}\n")
3.2使用keys()访问字典中的键
alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
for key in alien.keys():
print(f"key:{key}")
3.3不使用keys()访问字典中的键
alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
for key in alien:
print(f"key:{key}")
3.4使用sorted()按特定顺序遍历字典中所有的键(a->b->c…)
使用规范:sorted(字典变量.keys())
alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
for key in sorted(alien.keys()):
print(f"key:{key}")
"""
不使用.keys()结果一样
alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
for key in sorted(alien):
print(f"key:{key}")
"""
3.5使用values()遍历字典中的所有值
ps:类比keys()
alien = {'color':'green','points':5,'x_position':0,'y_position':25,}
for value in alien.values():
print(f"value:{value}")
ps:这种做法提取字典中的所有的值,不考虑值是否重复,若想避免重复,可以使用集合set(),用法同sorted()。
3.6使用set()避免遍历的字典中的值重复
alien = {'color':'green','points_0':5,'points_1':5,'points_2':5,}
for value in set(alien.values()):
print(f"value:{value}")
3.7tips:创建集合
说明:集合和字典很容易混淆,因为它们都是使用“{}”来进行定义,当括号中没有键值对时,存储的很可能是集合,不同于列表和字典,集合不会以特定的顺序存储元素。
jihe = {'I','love','python'}
print(jihe)
四.嵌套
4.1字典中嵌套字典
ps:一个键对应一个值,一个值由多个键值对的信息构成时,值就用字典表示。
total = {'cars':{'like_1':'aodi',
'like_2':'bmw',
},
'colors': {'like':'red',
'unlike':'blue',
},
}
for key,value in total.items():
print(f"key:{key}")
print(f"value:{value}\n")
4.2字典中嵌套列表
ps:一个键对应多个值时,值就用列表表示。
total = {'cras':['bmw','aodi'],
'colors':['red','yellow','green'],
}
for key,value in total.items():
print(f"key:{key}")
print(f"value:{value}\n")
4.3列表中嵌套字典(字典列表)
eg:
alien_0={'color':'green',
'points':5,
}
alien_1={'color':'yellow',
'points':10,
}
alien_2={'color':'red',
'points':15,
}
aliens = [alien_0,alien_1,alien_2]
for alien in aliens:
print(alien)
批量生成外星人:
aliens =[]
for alien in range(5): #批量生成五个外星人
new_alien = {'colors':'green',
'points':5,
}
aliens.append(new_alien) #添加到空列表的末尾
"""打印外星人"""
for alien in aliens:
print(alien)
ps:先掌握一些基础知识,后续在项目中使用所学知识,加深理解,由易到难。