python-字典
1.字典
在Python中,字典是一系列键-值对。每一个键都与一个值相关联,可以使用键来访问相关联的值。
与键相关联的可以是数乃至字典字、字符串、列表甚至字典。
alien = {'color':'red','points':5} #point 点数
print(alien['color'])
print(alien['points'])
red
5
颜色color对应red,point对应点数5。
#字典是一种动态结构,可随时在其中添加键-值对,要添加键-值对,可依次指定字典名,用方括号括起的的键和相关联的值。
alien['size']=10 print(alien)
{'color': 'red', 'points': 5, 'size': 10}
一般情况在空字典中加键-值对是为了方便,但有时候必须这么做。一般通常在存储用户提供的数据活编写自动生成的大量键-值对代码时,需要定义一个空字典。
2.修改字典中的值
修改字典中的值,依次指定字典名、用方括号括起的键和键的新值。
alien = {'x':0,'y':0,'speed':'medium'} #这里假如有一个外星人,初始坐标为0,0;速度为medium
print('Original x:' + str(alien['x'])) #Original,最初的
if alien['speed'] == 'slow': #如果外星人速度为slow,横坐标x右移1
x = 1
elif alien['speed'] == 'medium': #如果外星人速度为medium,横坐标x右移2
x = 2
else: #如果外星人速度为其他情况,横坐标x右移3
#这个外星人很快
x = 3
alien['x'] += x #x初始坐标加上移动的x值,最后打印
print('New x:' + str(alien['x']))
Original x:0
New x:2
3.删除字典中的值
del:使用del时,必须指定字典名和要删除得键。
del alien['x'],删除的键-对值永远消失。
4.遍历字典中的值
一个字典中可能有几条到数不清的键-值对。
遍历字典的方式有很多种,比如:键-值、键或值。
items()方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值)元组数组。是随字典变化的新类型
vlaue()方法是只返回值列表,不包含任何键。
set()方法类似集合一个列表,但是没有重复项。
favourite_languages = {
'lihua' : 'python',
'liming' : 'c',
'guohao' : 'java',
'yanmou' : 'c'
}
for name,language in sorted(favourite_languages.items()): #sorted 正序排序
print(name.title() + "'s favourite language is " + language.title() + ".")
for language1 in set(favourite_languages.values()): #values() 函数以列表返回字典中的所有值。 set去除重复项
print(language1)
Guohao's favourite language is Java.
Lihua's favourite language is Python.
Liming's favourite language is C.
Yanmou's favourite language is C.
java
python
c
user1 = { 'username' : 'lihua', 'first' : 'aa', 'last' : 'bb' } for key,value in user1.items(): print('\nKey:' + key) print('Value:' + value)
Key:username
Value:lihua
Key:first
Value:aa
Key:last
Value:bb
5.嵌套
5.1 字典列表
alien1 = {'color':'red','point':'5'} #创建三个外星人
alien2 = {'color':'green','point':'10'}
alien3 = {'color':'yellow','point':'15'}
aliens = [alien1,alien2,alien3] 3将三个字典放入一个列表中
for alien in aliens:
print(alien)
{'color': 'red', 'point': '5'}
{'color': 'green', 'point': '10'}
{'color': 'yellow', 'point': '15'}
但当我们的外星人量大的时候,需要借助for循环来解决创建的问题
#首先创建一个空的列表 aliens = [] #创建10个外星人 for number in range(20): #循环20次,造出20个外星人 new_alien = {'color':'red','point':'5','speed':'fast'} #给外星人属性 aliens.append(new_alien) #在空列表中添加外星人 for alien in aliens[:5]: #取前五个外星人 print(alien) print(str(len(aliens))) #确定是否为20个 for alien in aliens[:2]: #取前两个外星人 if alien['color'] == 'red': alien['color'] = 'green' alien['point'] = 5 alien['speed'] = 'slow' for alien in aliens[:5]: print(alien) {'color': 'red', 'point': '5', 'speed': 'fast'} {'color': 'red', 'point': '5', 'speed': 'fast'} {'color': 'red', 'point': '5', 'speed': 'fast'} {'color': 'red', 'point': '5', 'speed': 'fast'} {'color': 'red', 'point': '5', 'speed': 'fast'} 20 {'color': 'green', 'point': 5, 'speed': 'slow'} {'color': 'green', 'point': 5, 'speed': 'slow'} {'color': 'red', 'point': '5', 'speed': 'fast'} {'color': 'red', 'point': '5', 'speed': 'fast'} {'color': 'red', 'point': '5', 'speed': 'fast'}
5.2 在字典中存储列表
jiaozi = { '表皮':'白面', '馅':'肉', '调料':['醋','辣椒'] #在字典中插入一个列表,用来丰富描述 } print('你点了一个' + jiaozi['表皮'] + jiaozi['馅'] + '的饺子') for tiaoliao in jiaozi['调料']: #遍历 print('\t' + tiaoliao) # \t 制表符它的作用是对齐表格数据的各列
你点了一个白面肉的饺子
醋
辣椒
favourite_language = { '李明':['c','python'], #在字典中嵌套列表 '赵越':['c'], '小明':['java','c'], '李刚':['c++','php'] } for name,languages in favourite_language.items(): print(name.title() + "最喜欢的语言是:") for language in languages: print("\t" + language.title())
李明最喜欢的语言是:
C
Python
赵越最喜欢的语言是:
C
小明最喜欢的语言是:
Java
C
李刚最喜欢的语言是:
C++
Php

浙公网安备 33010602011771号