作者: quantgalaxy@outlook.com
blog: https://blog.csdn.net/quant_galaxy
欢迎交流
Python字典是存储键值对集合的基本数据结构。每个键都是唯一的,并作为其关联值的标识符。
字典是无序的,这意味着它们不维护任何特定的元素顺序,而且它们是可变的,允许对其内容进行动态修改。
Python字典具有令人难以置信的通用性,使其适用于各种任务,例如有效地存储和检索数据、表示复杂的数据结构以及执行查找和数据转换。
它们被实现为哈希表,这确保了基于键的值的快速访问,即使对于大型数据集也是如此。字典是Python开发人员的关键工具,它提供了一种灵活的方式来管理和操作程序中的数据。
本篇文章主要介绍字典的一些基本操作方式
# create dictionary
my_dict = dict(Names = ["Amaka", "Chad", "Kemi", "Jack", "Tim"],
Age = [22, 24, 30, 27, 32])
print(my_dict)
# {'Names': ['Amaka', 'Chad', 'Kemi', 'Jack', 'Tim'], 'Age': [22, 24, 30, 27, 32]}
print(my_dict.keys())
# dict_keys(['Names', 'Age'])
# get values
print(my_dict.values())
# dict_values([['Amaka', 'Chad', 'Kemi', 'Jack', 'Tim'], [22, 24, 30, 27, 32]])
# get age values
ages = my_dict.get("Age")
# [22, 24, 30, 27, 32]
# 另一种方法:
print(my_dict["Age"])
# [22, 24, 30, 27, 32]
# get all items
print(my_dict.items())
# dict_items([('Names', ['Amaka', 'Chad', 'Kemi', 'Jack', 'Tim']), ('Age', [22, 24, 30, 27, 32])])
作者: quantgalaxy@outlook.com
blog: https://blog.csdn.net/quant_galaxy
欢迎交流
如果只是一个赋值语句,得到的只是字典的一个引用,完整的复制一个字典,需要使用到深拷贝。
# make copy of dictionary
copy = my_dict.copy()
print(copy)
# {'Names': ['Amaka', 'Chad', 'Kemi', 'Jack', 'Tim'], 'Age': [22, 24, 30, 27, 32]}
# clear dictionary content
my_dict.clear()
print(empty_dict)
# None
# update dicitonary with another dictionary
another_dict = {"Count":[1,2,3,4,5]}
my_dict.update(another_dict)
print(my_dict)
# {'Names': ['Amaka', 'Chad', 'Kemi', 'Jack', 'Tim'], 'Age': [22, 24, 30, 27, 32], 'Count': [1, 2, 3, 4, 5]}
# remove an item with a specified key and return its values
values = my_dict.pop("Age")
print(values)
print(my_dict)
# [22, 24, 30, 27, 32]
# {'Names': ['Amaka', 'Chad', 'Kemi', 'Jack', 'Tim']}
# remove the last item in a dictionary and return its key-value pair as a tuple.
tup = my_dict.popitem()
print(tup)
print(my_dict)
# ('Age': [22, 24, 30, 27, 32])
# {'Names': ['Amaka', 'Chad', 'Kemi', 'Jack', 'Tim']}
# create nested list
nested_list = [["Amaka", "Chad", "Kemi", "Jack", "Tim"],[22, 24, 30, 27, 32]]
print(nested_list)
# [['Amaka', 'Chad', 'Kemi', 'Jack', 'Tim'], [22, 24, 30, 27, 32]]
new_dict = dict()
for i in nested_list[0]:
for j in nested_list[1]:
new_dict.setdefault(i,j)
print(new_dict)
# {'Amaka': 22, 'Chad': 22, 'Kemi': 22, 'Jack': 22, 'Tim': 22}
setdefault设置指定key的默认值,如果key在字典中存在,这个设置就不会执行,如果不存在,就会把值设置为第二个变量。
上面例子中,第一层循环式遍历所有的字符串key,第二个循环在第一次都已经成功设置了默认值,也就是nested_list[1]的第一个元素22。后续的设置都是无效的。
所以最后所有的key都被设置为了值22。
作者: quantgalaxy@outlook.com
blog: https://blog.csdn.net/quant_galaxy
欢迎交流