字典是无序,可变和可索引的集合。 字典由键值对的集合组成。 每个键值对将键映射到其关联值。 字典用大括号书写。 每对键值均以冒号( :
)分隔,并且各项之间以逗号分隔。
my_dict = {"name":"Max", "age":28, "city":"New York"}
|
创建字典
使用大括号或者内置的 dict
函数创建。
my_dict = {"name":"Max", "age":28, "city":"New York"} print(my_dict)
my_dict_2 = dict(name="Lisa", age=27, city="Boston") print(my_dict_2)
|
{'name': 'Max', 'age': 28, 'city': 'New York'} {'name': 'Lisa', 'age': 27, 'city': 'Boston'}
|
访问元素
name_in_dict = my_dict["name"] print(name_in_dict)
|
添加或修改元素
只需添加或访问键并分配值即可。
my_dict["email"] = "max@xyz.com" print(my_dict)
my_dict["email"] = "coolmax@xyz.com" print(my_dict)
|
{'name': 'Max', 'age': 28, 'city': 'New York', 'email': 'max@xyz.com'} {'name': 'Max', 'age': 28, 'city': 'New York', 'email': 'coolmax@xyz.com'}
|
删除元素
del my_dict["email"]
print("popped value:", my_dict.pop("age"))
print("popped item:", my_dict.popitem())
print(my_dict)
|
popped value: 28 popped item: ('city', 'New York') {'name': 'Max'}
|
检查键
my_dict = {"name":"Max", "age":28, "city":"New York"}
if "name" in my_dict: print(my_dict["name"])
try: print(my_dict["firstname"]) except KeyError: print("No key found")
|
遍历字典
for key in my_dict: print(key, my_dict[key])
for key in my_dict.keys(): print(key)
for value in my_dict.values(): print(value)
for key, value in my_dict.items(): print(key, value)
|
name Max age 28 city New York name age city Max 28 New York name Max age 28 city New York
|
复制字典
复制索引时请注意。
dict_org = {"name":"Max", "age":28, "city":"New York"}
dict_copy = dict_org
dict_copy["name"] = "Lisa" print(dict_copy) print(dict_org)
dict_org = {"name":"Max", "age":28, "city":"New York"}
dict_copy = dict_org.copy()
dict_copy["name"] = "Lisa" print(dict_copy) print(dict_org)
|
{'name': 'Lisa', 'age': 28, 'city': 'New York'} {'name': 'Lisa', 'age': 28, 'city': 'New York'} {'name': 'Lisa', 'age': 28, 'city': 'New York'} {'name': 'Max', 'age': 28, 'city': 'New York'}
|
合并两个字典
my_dict = {"name":"Max", "age":28, "email":"max@xyz.com"} my_dict_2 = dict(name="Lisa", age=27, city="Boston")
my_dict.update(my_dict_2) print(my_dict)
|
{'name': 'Lisa', 'age': 27, 'email': 'max@xyz.com', 'city': 'Boston'}
|
可能的键类型
任何不可变的类型(例如字符串或数字)都可以用作键。 另外,如果元组仅包含不可变元素,则可以使用它作为键。
my_dict = {3: 9, 6: 36, 9:81}
print(my_dict[3], my_dict[6], my_dict[9])
my_tuple = (8, 7) my_dict = {my_tuple: 15}
print(my_dict[my_tuple])
|
嵌套字典
值也可以是容器类型(例如列表,元组,字典)。
my_dict_1 = {"name": "Max", "age": 28} my_dict_2 = {"name": "Alex", "age": 25} nested_dict = {"dictA": my_dict_1, "dictB": my_dict_2} print(nested_dict)
|
{'dictA': {'name': 'Max', 'age': 28}, 'dictB': {'name': 'Alex', 'age': 25}}
|
GitHub repo: qiwihui/blog
Follow me: @qiwihui
Site: QIWIHUI