才发现出了点问题没发成功,今天复习了字典。
- ==字典是一系列键值对。每个键都与一个值关联,可以使用键来访问与之关联的值。与键相关联的值可以是数、字符串、列表乃至字典。==
alien_0={'color':'green','points':5}
new_points=alien_0['points']
print(f"You just earned {new_points} points!")
# 》You just earned 5 points!
- 添加键值对(字典是动态结构)
alien_0['x_position']=0
alien_0['y_position']=25
print(alien_0)
# 》{'color':'green','points':5,'x_position':0,'y_position':25}
- 创建一个空字典
alien_0 = {}
alien_0['color'] = 'green'
alien_0['points'] = 5
print(alien_0)
# 》{'color':green,'pionts',5}
- 修改字典的值:直接通过对相关键的值进行赋值来进行修改
alien_0['color'] = 'yellow'
print(f"The alien is now {alien_0['color']}.")
# 》The alien is now yellow.
移动速度游戏:对一个能够以不同速度移动的外星人进行位置跟踪。为此,存储该外星人的当前速度,并据此确定该外星人应该向右移动多远:
alien_0={'x_position':0,'y_position':25,'speed':'medium'}
print(f"Original position:{alien_0['x_position']}")
# 向右移动外星人
# 根据当前速度确定将外星人向右移动多远
if alien_0['speed'] == 'slow':
x_increment = 1
elif alien_0['speed'] == 'medium':
x_increment = 2
else:
x_increment = 3
alien_0['x_position']=alien_0['x_position'] + x_increment
print(f"New position : {alien_0['x_position]}")
# 》Original position:0
# 》New position: 2
- 删除键值对:不需要的信息,可用del彻底删除
del alien_0['points']
- 使用get()来访问值:==有时会出现字典里不存在的键==,这时需要返回一个默认值;一个参数用于指定键(必填),第二个参数为当指定的键不存在时要返回的值(可选),当指定的键不存在,而又没有填写第二个参数,则返回None
alien_0={'color':'green','speed':'slow'}
point_value = alien_0.get('points','No point value assigned.')
print(point_value)
# 》No point value assigned.
练习:
voc= {
'title':'将值统一切换成首字母大写的格式',
'upper':'将值里所有字母统一切换成大写的格式',
'lower':'将值里所有字母统一切换成小写的格式',
'append':'在列表后追加元素的方法',
'insert':'通过指定索引的方式在列表的任意位置添加元素',
}
print(f"\ntitle : \t{voc['title']}\nupper : \t{voc['upper']}\nlower : \t{voc['lower']}\nappend:\t{voc['append']}\ninsert:\t{voc['insert']}")
# 》
title :
将值统一切换成首字母大写的格式
upper :
将值里所有字母统一切换成大写的格式
lower :
将值里所有字母统一切换成小写的格式
append:
在列表后追加元素的方法
insert:
通过指定索引的方式在列表的任意位置添加元素
》
也可以用遍历法:
for key,value in voc.items():
print(f"\nkey:{key}")
print(f"vaule:{value}")
for key in voc.keys(): # 遍历字典时默认遍历所有的键,所以替换成voc也一样
print(key.title())
# 》title
upper
lower
append
insert
》
- 按特定的顺序遍历字典中的所有键:
- 按sorted()函数来获得按特定顺序排列的键列表的副本:
favorite_lan = {
'jen' : 'python',
'sarah' : 'c',
'edward' : 'rust',
}
for name in sorted(favorite_lan.keys()):
print(f"{name.title()},thank you for taking the poll.")
# 》Edward,thank you for taking the poll.
# 》Jen,thank you for taking the poll.
# 》Sarah,thank you for taking the poll.
- 遍历字典中的所有值:
- values(): ==不去除重复值==
favorite_color = {
'ken' : 'yellow',
'jay' : 'black',
'tim' : 'blue',
'coco' : 'yellow',
}
print("The following color have been mentioned:")
for color in favorite_color.values():
print(color)
# 》yellow
black
blue
yellow #
- set() ==去除重复项==
favorite_color = {
--snip--
}
print("The following color have been mentioned:')
for color in set(favorite_color.values()):
print(color)
# 》yellow
black
blue
#
集合
- 一对花括号创建,并用逗号隔开元素;
- 不会以特定的顺序存储元素