字典

语法

字典是一种无序的数据结构,用于存储键-值对。它使用花括号 {} 来表示,并且键和值之间使用冒号 : 分隔,各个键值对之间⽤逗号隔开. 语法:
my_dict = {key1: value1, key2: value2, ...}
其中,key 是唯一的且不可变的(通常使用字符串或数字),而 value 可以是任意类型的对象。

字典里面的数据是以___键值对___形式进行存储,字典不支持___下标___取值,只能以__key____查找数据。

示例

复制代码
  1 '''
  2 字典是一种无序的数据结构,用于存储键-值对。它使用花括号 {} 来表示,并且键和值之间使用冒号 : 分隔.各个键值对之间⽤逗号隔开 语法:
  3     my_dict = {key1: value1, key2: value2, ...}
  4 其中,key 是唯一的且不可变的(通常使用字符串或数字),而 value 可以是任意类型的对象。
  5 
  6 
  7 操作和处理字典:
  8     1. keys(): 返回一个包含字典所有键的视图。
  9     2. values(): 返回一个包含字典所有值的视图。
 10     3. items(): 返回一个包含字典所有键-值对的视图。
 11     4. get(key[, default]): 获取指定键的值,如果键不存在,则返回默认值(如果提供了)。
 12     5. pop(key[, default]): 删除并返回指定键的值,如果键不存在,则返回默认值(如果提供了)。
 13     6. popitem(): 随机删除并返回字典中的一对键-值。
 14     7. clear(): 清空字典,删除所有的键-值对。
 15     8. update(other_dict): 将其他字典中的键-值对更新到当前字典中。
 16     9. copy(): 创建字典的副本。
 17     10. len(): 返回字典中键-值对的数量。
 18     11. in: 检查指定键是否存在于字典中。
 19 '''
 20 
 21 # 1. 创建一个字典
 22 # 创建空字典的2种方法
 23 my_dict = {}  # 1. 使用{}创建空字典
 24 my_dict = dict()  # 2. 使用dict()创建空字典
 25 # 使用dict()构造函数初始化字典。
 26 my_dict = dict(name='Alice', age=25)
 27 
 28 my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
 29 
 30 
 31 # 2. 访问字典中的值,对象[key名] 或字典对象.get(key名)
 32 print(my_dict['name'])  # Output: Alice
 33 # name = my_dict.get('name', 'Unknown')  # 获取键为'name'的值,如果不存在则返回默认值'Unknown'
 34 print(my_dict.get('age'))  # Output: 25
 35 
 36 # 3. 修改字典中的值
 37 my_dict['age'] = 26
 38 
 39 # 4. 添加新的键-值对
 40 my_dict['country'] = 'USA'
 41 my_dict['name'] = 'Allen'  # 如果key已经存在,则更新其值
 42 print(my_dict)
 43 
 44 # 5. 删除键-值对
 45 del my_dict['city']
 46 
 47 # 6. 遍历字典
 48 for key, value in my_dict.items():
 49     print(key, value)
 50 
 51 # 7. 使用字典的方法(循环)
 52 print(my_dict.keys())  # 获取所有的key Output: dict_keys(['name', 'age', 'country'])
 53 print(type(my_dict.keys()))  # <class 'dict_keys'>
 54 print(my_dict.values())  # Output: dict_values(['Allen', 26, 'USA'])
 55 print(type(my_dict.values()))  # <class 'dict_values'>
 56 print(len(my_dict))  # Output: 3
 57 
 58 print(my_dict.items())  # dict_items([('name', 'Allen'), ('age', 26), ('country', 'USA')])
 59 print(type(my_dict.items()))  # <class 'dict_items'>
 60 
 61 for item in my_dict.items():
 62     print(item)  # ('name', 'Allen')
 63     print(type(item))  # <class 'tuple'>
 64 # 使用items()方法迭代字典的键-值对
 65 for key, value in my_dict.items():
 66     print(key, value)
 67 # 使用keys()方法迭代字典
 68 for key in my_dict.keys():
 69     print(f"key={key},value={my_dict[key]}")
 70 
 71 # 8. 判断键是否存在
 72 if 'name' in my_dict:
 73     print('Name is present in the dictionary.')
 74 
 75 # 9. 创建字典的副本:copy方法\dict方法
 76 new_dict = my_dict.copy()  # 浅拷贝
 77 new_dict = dict(my_dict)   # 浅拷贝
 78 
 79 # 将键-值对转换为列表:
 80 # 1. 列表中的元素是元组
 81 # 1个元组,有2个元素,第1个是key,第2个是key对应的value
 82 
 83 # 10. 使用list()函数将items()的结果转换为列表
 84 items_list = list(my_dict.items())
 85 print(items_list)  # [('name', 'Allen'), ('age', 26), ('country', 'USA')]
 86 
 87 # 11. 使用pop()方法删除指定键的值并返回该值
 88 age = my_dict.pop('age')  # 删除键为'age'的值并返回
 89 print(age)
 90 
 91 # 12. 使用in关键字判断键是否存在于字典中
 92 if 'name' in my_dict:
 93     print('Name is present in the dictionary.')
 94 
 95 # 11. 清空字典
 96 my_dict.clear()
 97 print(len(my_dict))
 98 
 99 # 12 删除字典对象
100 del my_dict
101 print(my_dict) # NameError: name 'my_dict' is not defined. Did you mean: 'new_dict'?
复制代码

 

坑:

 总结

1. 创建字典

复制代码
 1 # 1. 使用大括号 {} 创建字典:
 2 my_dict = {}
 3 print(type(my_dict), my_dict, sep="\t\t\t")  # <class 'dict'>            {},sep指定多个打印字典的分隔符,默认是空格
 4 
 5 # 2.使用大括号 {} 并指定键值对:
 6 my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
 7 print(my_dict) # {'name': 'John', 'age': 30, 'city': 'New York'}
 8 
 9 # 3. 使用内置的 dict() 函数创建字典
10 my_dict = dict()
11 print(my_dict)  # {}
12 
13 # 4.使用 dict() 函数并传入键值对作为参数:
14 my_dict = dict(name='John', age=30, city='New York')  # 注意key写法,没有单引号或双引号哦
15 print(my_dict)  # {'name': 'John', 'age': 30, 'city': 'New York'}
16 
17 # 5.使用列表推导式创建字典:
18 keys = ['name', 'age', 'city']
19 values = ['John', 30, 'New York']
20 my_dict = {key: value for key, value in zip(keys, values)}  # 分2块看: key: value 和 for key, value in zip(keys, values)
21 print(my_dict)  # {'name': 'John', 'age': 30, 'city': 'New York'}
22 
23 # 6.使用元组的列表 创建字典
24 items = [('name', 'John'), ('age', 30), ('city', 'New York')]
25 my_dict = dict(items)
26 print(my_dict)  #  {'name': 'John', 'age': 30, 'city': 'New York'}
27 
28 # 7.使用字典解析式(Dictionary Comprehension)创建字典:
29 my_dict = {x: x**2 for x in range(5)} # 分2块看: x: x**2 和 for x in range(5)
30 print(my_dict)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
31 
32 # 8.使用 zip() 函数将两个列表合并成字典
33 keys = ['name', 'age', 'city']
34 values = ['John', 30, 'New York']
35 my_dict = dict(zip(keys, values))
36 print(my_dict) # {'name': 'John', 'age': 30, 'city': 'New York'}
37 
38 # 9. 使用默认值的 setdefault() 方法,添加数据
39 my_dict = {}
40 my_dict.setdefault('name', 'John')
41 my_dict.setdefault('age', 30)
42 print(my_dict)  # {'name': 'John', 'age': 30}
复制代码

 



posted @   Allen_Hao  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示