Python基本数据结构之字典类型dict用法分析

  • Post category:Python

Python基本数据结构之字典类型(dict)用法分析

一、字典类型定义及特点

1.定义

字典是Python中重要的一种数据类型,用花括号{}生成,格式为:

d = {key1: value1, key2: value2}

其中,d为字典名,key为索引,value为对应的值,各个键值对之间用逗号隔开,键和值之间用冒号分隔。

2.特点

字典类型与其他数据类型的不同之处在于它具有以下几个特点:

  • 字典中的元素是通过键值对(keys:values)的方式来存储和访问的,因此具有快速查找的效率;
  • 字典中的键是唯一的,而值则不必唯一;
  • 字典中的键必须是不可变类型(如数字、字符串、元组等),而值可以是任意类型;
  • 字典是无序的,即字典中元素的排列顺序是不确定的。

二、字典类型的基本操作

1.访问字典元素

字典类型中通过键来访问其对应的值,代码如下:

# 定义字典对象
d = {'name': 'John', 'age': 25, 'sex': 'male'}

# 获取字典中元素的值
print(d['name'])  # 输出John
print(d['age'])  # 输出25
print(d['sex'])  # 输出male

2.添加键值对

字典类型中通过赋值的方式来添加新的键值对,代码如下:

# 定义字典对象
d = {'name': 'John', 'age': 25}

# 添加新的键值对
d['sex'] = 'male'

# 打印字典
print(d)  # 输出 {'name': 'John', 'age': 25, 'sex': 'male'}

3.修改键值对

字典类型中可以通过赋值的方式修改已有的键值对,代码如下:

# 定义字典对象
d = {'name': 'John', 'age': 25}

# 修改键值对
d['name'] = 'Jack'

# 打印字典
print(d)  # 输出 {'name': 'Jack', 'age': 25}

4.删除键值对

字典类型中可以通过del语句删除指定的键值对,代码如下:

# 定义字典对象
d = {'name': 'John', 'age': 25}

# 删除键值对
del d['age']

# 打印字典
print(d)  # 输出{'name': 'John'}

5.遍历字典元素

字典类型中可以使用for循环遍历字典中的所有键值对,代码如下:

# 定义字典对象
d = {'name': 'John', 'age': 25, 'sex': 'male'}

# 遍历字典输出所有元素
for key, value in d.items():
    print(key, value)

输出结果为:

name John
age 25
sex male

三、字典常用方法

1. clear()

清空字典中的所有元素,代码如下:

# 定义字典对象
d = {'name': 'John', 'age': 25}

# 清空字典
d.clear()

# 打印字典
print(d)  # 输出 {}

2. copy()

复制字典。如果直接将一个字典赋值给另一个变量,两个变量实际上会指向同一个字典对象,因此修改其中一个变量会影响另一个变量。使用copy()方法可以复制一个新的字典,代码如下:

# 定义字典对象
d1 = {'name': 'John', 'age': 25}

# 复制字典
d2 = d1.copy()

# 修改d1中的一个元素
d1['name'] = 'Jack'

# 打印d1和d2
print(d1)  # 输出{'name': 'Jack', 'age': 25}
print(d2)  # 输出{'name': 'John', 'age': 25}

3. get()

根据键获取对应的值。与通过索引获取值的方法不同的是,如果指定的键不存在于字典中,get()方法不会报错,而是返回None(也可返回指定的默认值),代码如下:

# 定义字典对象
d = {'name': 'John', 'age': 25}

# 通过键获取值
print(d.get('name'))  # 输出John

# 尝试使用不存在的键获取值
print(d.get('sex'))  # 输出None

# 设置默认值并获取值
print(d.get('sex', 'unknown'))  # 输出unknown

4. pop()

根据键删除并返回对应的值。代码如下:

# 定义字典对象
d = {'name': 'John', 'age': 25}

# 删除并返回值
value = d.pop('name')

# 打印字典和被删除的值
print(d)  # 输出{'age': 25}
print(value)  # 输出John

四、示例说明

1.使用字典统计字符串中每个字符出现次数

# 定义字符串
s = 'hello, world!'

# 统计每个字符出现的次数
d = {}
for c in s:
    if c in d:
        d[c] += 1
    else:
        d[c] = 1

# 打印结果
print(d)  # 输出{'h': 1, 'e': 1, 'l': 3, 'o': 2, ',': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1}

2.使用字典实现一个简单的词频统计器

# 读取文件
with open('text.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 将文本转换为单词序列
words = text.split()

# 统计每个单词出现的次数
d = {}
for word in words:
    if word in d:
        d[word] += 1
    else:
        d[word] = 1

# 按照出现次数降序排序
sorted_pairs = sorted(d.items(), key=lambda x: x[1], reverse=True)

# 输出结果
for pair in sorted_pairs:
    print(pair[0], pair[1])

以上就是Python中字典类型的基本用法。希望可以帮助大家更好地理解和应用这个重要的数据类型。