四、字典

4.1 一个简单的字典(键值对)

# 外星人颜色(绿色)+分数(5)
alien_0 = {'color':'green','points':5}
print(alien_0['color']) #想要获取值(green),指定字典名(alie_0)+键(color) 
print(alien_0['points'])

#green
#5

4.2 添加键值对

字典是一种动态结构,可随时在其中添加键值对,要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。

alien_0 = {'color':'green','points':5}
print(alien_0)
# 新增外星人的x坐标和y坐标信息
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)

#{'color':'green','points':5}
#{'color':'green','points':5,'x_position':0,'y_position':25}

① 修改字典中的值

alien_0 = {'color':'green','points':5,'speed':'medium'}
alien_0["color"] = 'yellow'

# 向右移动外星人
# 根据当前速度确定将外星人向右移动多远
if alien_0['speed'] == 'slow':
    x_increment = 1
elif alien_0['speed'] == 'medium':
    x_increment = 2
else:
    x_increment = 3
# 新位置为旧位置‘x_position’加上移动距离x_increment
aien_0['x_positin'] = alien_0['x_position'] + x_increment
print(f"New x_position:{alien_0['x_position']}")

#Original x-position:0
#New x-position:2

 ② 删除键值对

del 字典名+要删除的键:del alien_0['points']

③ 使用get()来访问值

alien_0={'color':'green','speed':'slow'}
print(alien_0['points'])

# 直接输出会报错
point_value = alien_0.get('points','No points value assigned.') #不存在就返回第二个参数,没有设置参数就返回none
print(point_value)
         
# No points value assigned

 ④ 遍历字典

user_0={'username':'efermi', 'first':'enrico', 'last':'fermi'}
for key,value in user_0.items(): #不加items()就会报错
    print(f"\nKey:(key)")
    print(f"Value:(value)")

 ⑤ 遍历字典中的所有键或者值

keys()方法-返回一个字典所有的键

favorite_languages = {
    'jen':'python',
    'sarah':'c',
    'edward':'ruby',
    'phil':'python',
}
friends = ['phil','sarah']
for name in favorite_languages.keys(): #for name in sorted(favorite_languages.keys()):按顺序排列
    print(f"Hi{name.title()}.")
    if name in friends:
        language = favorite_languages[name].title()
        print(f"\t{name.title()},I see you love{language}!")

value()方法-返回字典中的所有值

favorite_languages = {
    'jen':'python',
    'sarah':'c',
    'edward':'ruby',
    'phil':'python',
}
for name in favorite_languages.values(): #for name in set(favorite_languages.keys()):可去重
    print(language.title())
   

4.3 嵌套

① 在列表中存储字典

# 创建一个用于存储外星人的空列表
aliens = []
# 创建30个绿色的外星人
for alien_number in range(30):
    new_alien = {'color':'green','points':5,'speed':'slow'}
    aliens.append(new_alien)
# 显示前5个外星人
for alien in aliens[:5]:
    print(alien)
# 显示
print("....")
# 显示创建了多个外星人
print(f"Total number of aliens:{len(aiens)}")

② 在字典中存储列表

# 存储所点披萨的信息
pizza = {
    'crust':'thick',
    'toppings':['mushrooms','extra cheese'],
}
# 概述所点的披萨
print(f"You ordered a{pizza['crust']}-crust pizza with the following toppings:")
# for循环遍历键‘toppings’
for topping in pizza['toppings']:
    print("\t" + topping)

③ 在字典存储字典

users = {
    'aeinstein':{
        'first':'albert',
        'last':'einstein',
        'location':'princeton',
    },
# 输出
# Username:aeinstein
#	 Full name: Albert Einstein
#	 Location: Princeton
# Username:mcurie
# 	 Full name: Marie Curie
#	 Location: Paris
    
for username,user_info in users.items():
    print(f"\Username:{username}")
    full_name = f"{user_infp['first']}(user_info['last']}"
    location = user_info['location']
    print(f"\tFull name:{full_name.title()}")
    print(f"\tLocation:{location.title()}")

 

posted @ 2024-07-27 15:06  鹤比纷恆红  阅读(38)  评论(0)    收藏  举报