4.字典
使用字典
基本操作
# 创建字典
alien_0 = {'color': 'red', 'points': 5}
# 使用值
print(alien_0['color']) # red
# 访问值
new_point = alien_0['points']
print(f'you have {new_point} points') # you have 5 points
# 添加键值对
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0) # {'color': 'red', 'points': 5, 'x_position': 0, 'y_position': 25}
# 修改值
new_color = alien_0['color'] = 'yellow'
print(f'the color is {new_color} now!') # the color is yellow now!
# 删除键值对
del alien_0['points']
print(alien_0) # {'color': 'yellow', 'x_position': 0, 'y_position': 25}
进阶操作
# 类似对象组成的字典
favorite_languages = {
'zhang_san': 'C',
'li_si': 'java',
'wang_wu': 'python',
'liu_liu': 'C++',
}
like = favorite_languages['li_si']
print(f'li_si like {like}') # li_si like java
# 使用get()来访问不存在的值
xiao_zhao = favorite_languages.get('xiao_zhao', 'the students is not in it')
print(xiao_zhao) # the students is not in it
遍历字典
favorite_languages = {
'zhang_san': 'C',
'li_si': 'java',
'wang_wu': 'python',
'liu_liu': 'C',
}
xiao_zhao = favorite_languages.get('xiao_zhao', 'the students is not in it')
# 遍历所有键值对
for name, languages in favorite_languages.items():
print(f'{name.title()} like:{languages}\n')
# 遍历所有键
for name in favorite_languages.keys():
print(name.title())
# 特定顺序遍历所有键 sorted()
for name in sorted(favorite_languages.keys()):
print(name.title())
# 遍历所有值
for languages in favorite_languages.values():
print(languages.title())
# 剔除重复项 set()
for languages in set(favorite_languages.values()):
print(languages)
# 关联值 列表[]
friends = ['zhang_san', 'li_si']
for name in favorite_languages.keys():
print(name.title())
if name in friends:
languages = favorite_languages[name].title()
print(f'\t{name.title()} like {languages}')
嵌套
字典列表
# 字典列表
aliens = []
# 创建20个红色外星人
for aliens_num in range(20):
alien = {'color': 'red', 'points': '21', 'speed': 'slow'}
aliens.append(alien)
# 显示前5个外星人
for i in aliens[:5]:
print(i)
# 显示一共创建了几个外星人
print(f'total number of aliens: {len(aliens)}')
# 修改前三个外星人
for alien in aliens[:2]:
if alien['color'] == 'red':
alien['color'] = 'yellow'
alien['speed'] = '100'
for i in aliens[:4]:
print(i)
在字典中存储列表
dog = {
'age': 20,
'color': ['white', 'black']
}
for i in dog['color']:
print(i)
在字典中存储字典
users = {
'zhang_san': {
'first': 'san',
'last': 'zhang',
'language': 'python'
},
'li_si': {
'first': 'si',
'last': 'li',
'language': 'java'
}
}
for i, j in users.items():
full_name = f"{j['last'].title()} {j['first'].title()}"
print(full_name) # Zhang San \n Li Si
while循环处理列表和字典
列表间移动元素
un_eat_fruits = ['apple', 'patch', 'orange', 'watermelon']
eat_fruits = []
while un_eat_fruits:
current_eat_fruits = un_eat_fruits.pop() # 暂时删除正在吃的
# print(f'{current_eat_fruits}')#正在吃的
eat_fruits.append(current_eat_fruits) # 吃完的加上刚吃的
print(f'{un_eat_fruits}') # []
print(f'{eat_fruits}') # ['watermelon', 'orange', 'patch', 'apple']
使用用户输入填充字典 sql[name] = language
sql = {}
continue_ask = True
while continue_ask:
name = input(f'what is your name? or "n" to end.\n')
if name == 'n':
continue_ask = False
break
language = input(f'what language do you like?\n')
sql[name] = language #**********
print(sql) # {'yang': 'chinese', 'wang': 'math'}
for name, language in sql.items():
print(f'{name} like {language}!')
# yang like chinese!
# wang like math!
参考文献:《Python编程——从入门到实践(第二版)》