赞
踩
目录
方式2:遍历字典的值,但不能通过值获取键 dict.values()
方式3:最常用的方法:直接获取键值对 dict.items()
popitem()默认删除最后一个键值对,并以元组的方式返回这个键值对
字典(Dict)是一种非常强大且常用的数据结构,它通过键值对(key-value pairs)的形式存储数据。字典的键(key)必须是唯一的且不可变(如字符串、数字或元组),而值(value)则可以是任意数据类型。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
Python中,字典可以通过花括号{}
直接定义,键和值之间用冒号:
分隔,键值对之间用逗号,
分隔。
- # 使用花括号定义字典
- d1 = {
- "name": "马云",
- "age": 18
- }
- print(d1, type(d1)) # 输出: {'name': '马云', 'age': 18} <class 'dict'>
dict()
函数创建除了直接使用花括号,还可以使用dict()
函数来创建字典。该函数可以接受多种形式的参数
- # 使用dict()函数创建空字典
- d2 = dict()
- print(d2, type(d2)) # 输出: {} <class 'dict'>
-
- # 使用关键字参数创建字典
- d3 = dict(a=10, b=20, c=30)
- print(d3, type(d3)) # 输出: {'a': 10, 'b': 20, 'c': 30} <class 'dict'>
-
- # 使用包含键值对的列表(每个元素为元组)创建字典
- d4 = dict([("string1", "123"), ("string2", 456), ("a", 30), ("name", "malei")])
- print(d4, type(d4)) # 输出: {'string1': '123', 'string2': 456, 'a': 30, 'name': 'malei'} <class 'dict'>
-
- # 或者使用关键字参数形式,与直接赋值类似
- d4 = dict(string1="123", string2=456, a=30, name="malei")
- print(d4, type(d4)) # 输出同上
- # 方式1:遍历字典的键,通过键获取值 dict.keys()
- d5 = {
- "name": "Jeci",
- "age": 18,
- "phone_number": 11335426987,
- "address": "河南省洛阳市",
- "hobbies": ["吃饭", "逛街", "打豆豆"]
- }
- for k in d5.keys():
- print(k, d5[k])
- """输出:
- name Jeci
- age 18
- phone_number 11335426987
- address 河南省洛阳市
- hobbies ['吃饭', '逛街', '打豆豆']
- """
- d5 = {
- "name": "Jeci",
- "age": 18,
- "phone_number": 11335426987,
- "address": "河南省洛阳市",
- "hobbies": ["吃饭", "逛街", "打豆豆"]
- }
- # 方式二:遍历字典的值,但不能通过值获取键 dict.values()
- for v in d5.values():
- print(v)
- """输出:
- Jeci
- 18
- 11335426987
- 河南省洛阳市
- ['吃饭', '逛街', '打豆豆']
- """
- d5 = {
- "name": "Jeci",
- "age": 18,
- "phone_number": 11335426987,
- "address": "河南省洛阳市",
- "hobbies": ["吃饭", "逛街", "打豆豆"]
- }
- # 方式3:最常用的方法:直接获取键值对 dict.items()
- for k, v in d5.items():
- print(k, v)
- """输出
- name Jeci
- age 18
- phone_number 11335426987
- address 河南省洛阳市
- hobbies ['吃饭', '逛街', '打豆豆']
- """
要向字典中添加新的键值对,可以直接通过赋值操作完成
- d5 = {
- "name": "Jeci",
- "age": 18,
- "phone_number": 11335426987,
- "address": "河南省洛阳市",
- "hobbies": ["吃饭", "逛街", "打豆豆"]
- }
- print("=================添加==================")
- # 当键不存在时,会自动添加你写的键值对
- d5["id"] = 101
- print(d5["id"]) # 101
- # 当键存在时,会修改键对应的值
- d5["name"] = "luccy"
- print(d5["name"]) # luccy
- print("=================删除==================")
- # pop()根据键删除键值对,并返回值
- r = d5.pop("age")
- print(r) # 18
- print(d5) # {'name': 'luccy', 'phone_number': 11335426987, 'address': '河南省洛阳市', 'hobbies': ['吃饭', '逛街', '打豆豆'], 'id': 101}
- # popitem()默认删除最后一个键值对,并返回这个键值对
- r = d5.popitem()
- print(r) # ('id', 101)
- print(d5) # {'name': 'luccy', 'phone_number': 11335426987, 'address': '河南省洛阳市', 'hobbies': ['吃饭', '逛街', '打豆豆']}
- # clear()清空字典
- d5.clear()
- print(d5) # {}
update()将另一个字典的键值对信息更新到自己的字典中,若键重复,则更新键对应的值
- print("=================修改==================")
- # update()将另一个字典的键值对信息更新到自己的字典中,若键重复,则更新键对应的值
- dict1 = {'a': 1, 'b': 2}
- dict2 = {'b': 3, 'c': 4}
- dict1.update(dict2)
- print(dict1) # {'a': 1, 'b': 3, 'c': 4}
get(k)获取键对应值并返回,若键不存在返回 None, 当你get(k,v)时:若键不存在,返回你指定的v,若k存在仍然返回字典中k对应的值
- print("=================查找==================")
- d5 = {
- "name": "luccy",
- "age": 18,
- "phone_number": 11335426987,
- }
- # 获取键对应值并返回,若键不存在返回 None
- print(d5.get("agg")) # None
- print(d5.get("name")) # luccy
- # 当查找的键不存在时,我们可以指定默认的返回值,键存在时,依旧返回键对应的值
- print(d5.get("agg","鸡蛋")) # 鸡蛋
- print(d5.get("name","小米")) # luccy
copy()浅复制:即复制旧的字典给到一个新的字典,当改变旧字典中的可变数据类型(list,dict)的数据时,新的字典也会随之改变
- print("=================浅复制==================")
- # copy()浅复制:即复制旧的字典给到一个新的字典,当改变旧字典中的可变数据类型(list,dict)的数据时,新的字典也会随之改变
- old_dict = {"my_list": [1, 2, 3], "my_dict": {"a": 1, "b": 2}}
- # 将old_dict字典浅复制给new_dict
- new_dict = old_dict.copy()
- print(old_dict) # {'my_list': [1, 2, 3], 'my_dict': {'a': 1, 'b': 2}}
- print(new_dict) # {'my_list': [1, 2, 3], 'my_dict': {'a': 1, 'b': 2}}
- # 改变old_dict中的可变数据类型的数据
- old_dict["my_list"].append(4)
- old_dict["my_dict"]["c"] = 3
- # new_dict也会随着改变
- print(old_dict) # {'my_list': [1, 2, 3, 4], 'my_dict': {'a': 1, 'b': 2, 'c': 3}}
- print(new_dict) # {'my_list': [1, 2, 3, 4], 'my_dict': {'a': 1, 'b': 2, 'c': 3}}
# 引入 copy模块 ,使用deepcopy()
即复制旧的字典给到一个新的字典,当改变旧字典中的可变数据类型(list,dict)的数据时,新的字典将不再会随之改变
- print("=================深复制==================")
- # 引入 copy模块 ,使用deepcopy()
- import copy
-
- old_dict = {"my_list": [1, 2, 3], "my_dict": {"a": 1, "b": 2}}
- # 将old_dict深复制给new_dict
- new_dict = copy.deepcopy(old_dict)
- print(new_dict) # {'my_list': [1, 2, 3], 'my_dict': {'a': 1, 'b': 2}}
- # 改变old_dict中的可变数据类型的数据
- old_dict["my_list"].append(4)
- old_dict["my_dict"]["c"] = 3
- # new_dict不会再随着old_dict改变
- print(old_dict) # {'my_list': [1, 2, 3, 4], 'my_dict': {'a': 1, 'b': 2, 'c': 3}}
- print(new_dict) # {'my_list': [1, 2, 3], 'my_dict': {'a': 1, 'b': 2}}
本问主要介绍了python中的字典数据类型,包括字典的定义,创建,遍历方式,和字典几种常用的操作方法,其中字典的集中操作方法,是我们必须要掌握的。学习一种数据类型,就是学习他的方法。本文详细演示了并讲解了其中增,删,改,查和复制的方法,希望能帮助到各位理解字典。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。