Python字典:存储键值的可变容器


一、字典

Python中的字典(Dictionary)是一种无序的、可变的数据类型,用于存储键值对。字典使用大括号 {} 来表示,每个键值对之间使用冒号 : 分隔,键值对之间使用逗号 , 分隔。

字典的特性:
字典中的键必须是唯一的,但值可以重复。
字典是无序的,即字典中的键值对没有固定的顺序。
字典中的值可以是任意数据类型,包括整数、字符串、列表、元组、甚至其他字典。

1.创建字典

字典(dictionary)由键(key)和值(value)组成,用冒号(:)分隔。每对键和值之间用逗号(,)分隔,并且整个字典用花括号({})包裹起来。

# 创建一个空字典
empty_dict = {}

# 创建一个字典
my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 也可以使用内置函数 dict 来创建一个字典
my_dict = dict(name='Bob', age=30, gender='male')

2.访问字典元素

可以使用方括号([])访问字典中的元素,括号中是键名。

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 访问 name 键的值
print(my_dict['name']) # 输出 'Alice'

# 如果键不存在,会报错
print(my_dict['height']) # 报错:KeyError: 'height'

还可以使用 get() 方法访问字典中的元素,括号中是键名。如果键不存在,则返回一个默认值(如果没有指定默认值,则返回 None)。

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 访问 name 键的值
print(my_dict.get('name')) # 输出 'Alice'

# 如果键不存在,返回默认值
print(my_dict.get('height', 'unknown')) # 输出 'unknown'

3.修改字典元素

字典中的元素可以通过访问它们并重新赋值来修改。

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 修改 name 键的值
my_dict['name'] = 'Bob'
print(my_dict) # 输出 {'name': 'Bob', 'age': 25, 'gender': 'female'}

4.添加字典元素

可以使用方括号([])和等号(=)来添加新键值对。

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 添加一个新键值对
my_dict['height'] = 165
print(my_dict) # 输出 {'name': 'Alice', 'age': 25, 'gender': 'female', 'height': 165}

5.删除字典元素

可以使用 del 关键字删除字典中的元素。

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 删除 age 键值对
del my_dict['age']
print(my_dict) # 输出 {'name': 'Alice', 'gender': 'female'}

二、字典的常见操作

1.遍历字典

可以使用 for 循环遍历字典中的所有键值对。

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 遍历字典
for key, value in my_dict.items():
    print(key, value)

2.获取键列表和值列表

可以使用 keys() 方法获取字典中所有的键,并使用 values() 方法获取字典中所有的值。

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 获取键列表
keys = my_dict.keys()
print(keys) # 输出 ['name', 'age', 'gender']

# 获取值列表
values = my_dict.values()
print(values) # 输出 ['Alice', 25, 'female']

3.检查键是否存在

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

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 检查是否存在 name 键
if 'name' in my_dict:
    print('name exists') # 输出 'name exists'

4.获取键的值

可以使用 setdefault() 方法获取键的值。如果键不存在,则设置一个默认值并返回。

my_dict = {'name': 'Alice', 'age': 25, 'gender': 'female'}

# 获取 name 键的值
name = my_dict.setdefault('name', 'unknown')
print(name) # 输出 'Alice'

# 获取 height 键的值(不存在,则返回默认值)
height = my_dict.setdefault('height', 165)
print(height) # 输出 165

三、字典内置函数&方法

1.内置函数len()

在Python中,我们可以使用len()方法来计算字典中键-值对的数量。通过计算字典的长度,我们可以很方便地了解字典中包含多少个键-值对,从而对字典进行相应的操作。

# 定义一个字典
dict = {'name': 'Tom', 'age': 18, 'gender': 'male'}

# 计算字典中键-值对的数量
dict_len = len(dict)

# 输出字典的长度
print("字典的长度是:", dict_len) # 输出 3

2.内置函数str()

字典 str() 方法返回字典的字符串表示形式。

# 定义字典
dict = {'Name': 'Bob', 'Age': 25, 'City': 'Shanghai'}

# 将字典转换为字符串
str_dict = str(dict)

# 输出转换后的字符串
print("字典-字符串: ", str_dict) # 输出 字典-字符串:  {'Name': 'Bob', 'Age': 25, 'City': 'Shanghai'}

注意事项
在使用字典 str() 方法时,需要注意以下几个问题:

  1. 如果字典中的键或值是布尔值、数字或字符串,则将键和值转换为字符串后,用冒号将它们分隔开,并用逗号将多个键值对隔开。如果存在多个键相同的键值对,则只会保留一个。
  2. 如果字典中的值是类或函数对象,则将对象的地址作为其字符串表示形式。
  3. 如果字典中的值是列表或字典等可变对象,则转换后的字符串表示形式中可能包含很多嵌套符号。

综上,字典 str() 方法可以将字典转换成字符串,但是需要注意上述问题。

3.内置函数type()

我们可以使用type()方法来判断一个对象是否为字典类型,示例代码如下:

my_dict_1 = {"key1": "value1", "key2": "value2", "key3": "value3"}
my_dict_2 = [1, 2, 3]
my_dict_3 = "string"

print(type(my_dict_1) == dict) # True
print(type(my_dict_2) == dict) # False
print(type(my_dict_3) == dict) # False

我们还可以通过type()方法来进行强制类型转换,将一个对象转换为字典类型,示例代码如下:

my_str = '{"key1": "value1", "key2": "value2", "key3": "value3"}'
my_dict = dict(eval(my_str))

print(my_dict) # {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
print(type(my_dict)) # <class 'dict'>

4.内置方法

序号函数及描述
1dict.clear()删除字典内所有元素
2dict.copy()返回一个字典的浅复制
3dict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict 如果键在字典dict里返回true,否则返回false
6dict.items()以列表返回一个视图对象
7dict.keys()返回一个视图对象
8dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9dict.update(dict2) 把字典dict2的键/值对更新到dict里
10dict.values() 返回一个视图对象
11pop(key[,default]) 删除字典 key(键)所对应的值,返回被删除的值。
12popitem() 返回并删除字典中的最后一对键和值。

四、总结

今天主要讲了Python的字典。

感谢你的观看!

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaobuding_QAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值