【Python】入门到放弃之第九章《字典》

上一篇:【Python】入门到放弃之第八章《元组》
下一篇:【Python】入门到放弃之第十章《控制流语句》


前言

这是本系列的第九章节内容,《字典》。


一、定义

  • 在Python中,字典(Dictionary)是一种内置的数据结构,用于存储键值对(key-value pairs)。字典是可变的,意味着你可以在创建字典后添加、删除或修改其中的元素。

  • 字典的键(key)必须是唯一的,并且是不可变的(即,它们必须是不可变数据类型,如字符串、数字或元组,但不能是列表或字典等可变类型)。字典的值(value)则可以是任何数据类型,包括列表、元组、字典等。

二、创建字典

  • 使用大括号{}和键值对(由冒号:分隔)来创建一个字典,每个键值对之间用逗号(,)分隔。

代码如下(示例):

my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming'}

三、访问字典元素

  • 通过键来访问字典中的值。
  • 如果尝试访问不存在的键,Python会抛出一个KeyError。为了避免这种情况,可以使用get()方法,它允许指定一个默认值,以防键不存在。

代码如下(示例):

my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming'}
print(my_dict['name'])  # 输出: 花凝雨
print(my_dict.get('job', 'Not specified'))  # 输出: Not specified

四、添加和修改元素

  • 通过给字典分配一个新的键值对来添加新的元素,或者更新现有键的值。

代码如下(示例):

my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming'}

my_dict['job'] = 'Bricklayer'  # 添加新元素
my_dict['age'] = 31  # 修改现有元素的值

print(my_dict['job'])  # 输出: Bricklayer
print(my_dict.get('age', 'Not specified'))  # 输出: 31

五、删除元素

代码如下(示例):

my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming', 'job': 'Bricklayer'}

# del语句可以删除字典中的元素
del my_dict['job']

# pop() 方法删除并返回指定键的值,如果键不存在,可以指定一个默认值。
age = my_dict.pop('age', None)  # 删除并返回'age'的值,如果不存在则返回None

# popitem() 方法删除并返回字典中的最后一个键值对(Python 3.7+中按插入顺序)。注意,这个方法在空字典上调用时会引发KeyError。
item = my_dict.popitem()  # 删除并返回最后一个键值对

print(my_dict)    # 输出:{'name': '花凝雨'}

六、遍历字典

代码如下(示例):

my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming', 'job': 'Bricklayer'}

# 遍历字典的键
for key in my_dict:
    print(key)
print()

# 遍历字典的键值对
for key, value in my_dict.items():
    print(f"{key}: {value}")
print()

# 遍历字典的键和对应的值(但值以枚举形式出现)
for key, value in enumerate(my_dict):
    # 注意:这里value实际上是键,不是值。枚举通常用于列表或元组。
    # 对于字典,你应该直接使用.items()来遍历键值对。
    print(f"Index {key}: Key {value}")

# 正确的枚举字典值的方式(如果有顺序要求,Python 3.7+)
for index, (key, value) in enumerate(my_dict.items()):
    print(f"Index {index}: Key {key}, Value {value}")

输出如下(示例):

name
age
city
job

name: 花凝雨
age: 30
city: Maoming
job: Bricklayer

Index 0: Key name
Index 1: Key age
Index 2: Key city
Index 3: Key job
Index 0: Key name, Value 花凝雨
Index 1: Key age, Value 30
Index 2: Key city, Value Maoming
Index 3: Key job, Value Bricklayer

七、检查键是否存在

  • 使用in关键字来检查字典中是否存在某个键。

代码如下(示例):

my_dict = {'name': '花凝雨', 'age': 30, 'city': 'Maoming', 'job': 'Bricklayer'}

if 'name' in my_dict:
    print("The key 'name' exists.")  # 输出:The key 'name' exists.

八、字典的其他方法

  1. clear():删除字典中的所有项。
  2. copy():返回字典的一个浅拷贝。
  3. fromkeys():使用给定的键创建新字典,每个键都映射到相同的值。
  4. keys()、values()、items():分别返回字典中的键、值、键值对视图的迭代器。
  5. setdefault():如果键不存在于字典中,则添加键并将值设为默认值。
  6. update():使用另一个字典的键值对来更新当前字典。

总结

以上,就是Python中字典的全部内容。字典在Python中非常有用,因为它们提供了一种快速访问数据的方式。通过使用键作为索引,用户可以几乎立即检索到与之关联的值,而无需遍历整个数据结构。这使得字典成为存储和访问大量数据的理想选择,尤其是在需要频繁查找、插入和删除元素时。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值