tag: python从零开始学习
种一棵树最好的时候,十年前或者今天
从入门到实践读书笔记(四)
第五章 字典
字典可以与链表相互嵌套存储,也可以存储字典
以{
和}
标识。是一种动态结构。
ant_0 = {'color':green, 'points':4}
print(ant_0['clolor'])
print(ant_0['points'])
# 添加键值对#键值对排列顺序与添加顺序不同
ant_0['x_pointion'] = 0
ant_0['y_pointion'] = 25
python中一系列键值对,每一个键都与一个值对应,与键对应的值可以是任何python中的对象。
修改、删除
删除,必须要指定字典名和要删除的键,是永久的。
# 修改
print()
ant_0['color'] = 'yellow'
print(ant_0)
# 删除,必须要指定字典名和要删除的键 # 永久的
del ant_0['points']
print(ant_0)
遍历字典
items方法返回一个键值对列表
for k,v in ant_0.items():
print("\nKey: ")
print(k)
print("\nvalue: ")
print(v)
遍历字典中所有的键
keys()方法返回一个列表
for name in ant_0.keys()
: print(name.title())
# 或者
print()
for name in ant_0:
print(name.title())
按顺序遍历字典
获取字典的元素时,其顺序是不可预测的
使用sorted()方法,可以将提取的键或者值按特定顺序排列
对于重复的值,可以使用set()方法,来创建一个由列表中独一无二的元素构成的集合。
like_names = {'happy': 'NT',
'beautiful':'蒙娜丽莎',
'hot': '法拉第',
'height': 'NT'}
# 按顺序遍历字典中的键
for name in sorted(like_names.keys()):
print(name.title())
# 按顺序遍历字典中的值
print()
for name in sorted(like_names.values()):
print(name.title())
# 提取的值中去除重复项
print()
for name in set(like_names.values()):
print(name.title())
嵌套
列表中嵌套字典
# 列表嵌套字典
alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'blue', 'points': 5}
alien_2 = {'color': 'green', 'points': 5}
aliens = [alien_0, alien_1, alien_2]
for alien in aliens:
print(alien)
# 创建12个外星人
for alien_number in range(12):
new_alien = {'color': 'green', 'points': 5}
aliens.append(alien)
# 显示前五个
for alien in aliens[:5]:
print(alien)
print('---')
print("The sum: "+str(len(aliens)))
字典中嵌套列表
想要在字典中将一个键嵌套多个值时,可以在字典中嵌套一个列表
languages ={
'机器语言':['机器码','指令集'],
'c系': ['c', '汇编语言'],
'JAVA': ['JAVA', 'JAVA ME', "EE", "SE"],
"Web": ['HTML', "H5", "js"],
'C++': ['C++','C#','python']
}
# 此情况默认输出键
for name, language in languages.items():
print(name.title())
for lan in language:
print('\t'+lan.title())
字典中嵌套字典
print("\n")
users = {
'zhang2': {
'F': '汇编语言',
'last': 'c',
'location': 'C++'
},
'wang2': {
'F': 'c',
'last': 'c++',
'location': 'java'
},
'li4': {
'F': 'c#',
'last': 'c++',
'location': 'python'
}
}
print("输出: ")
for user_name, user_info in users.items():
print('names: '+user_name)
for user_information in user_info:
print("information: "+user_information.title())