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

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

在Python中,字典类型(dict)是一种非常常见的数据类型。它可以存储键值对(key-value pairs),其中每个键(key)都是唯一的,对应的值(value)可以是任何数据类型。这里我们详细讲解字典类型(dict)的用法。

字典的创建

字典类型(dict)的创建非常简单,可以使用以下两种方式:

直接创建

字典可以通过花括号 { } 直接创建,并且键值对使用冒号分割,每个键值对之间使用逗号分割。

# 创建一个空字典
empty_dict = {}
# 创建一个非空字典
non_empty_dict = {'key1': 'value1', 'key2': 2, 'key3': [1, 2, 3]}

使用dict()函数

dict也可以通过dict()函数进行创建。

# 创建一个空字典
empty_dict = dict()
# 创建一个非空字典
non_empty_dict = dict(key1='value1', key2=2, key3=[1, 2, 3])

字典的访问

字典类型(dict)的访问方式非常简单,通过中括号 [ ] 访问指定的键(key)即可。

non_empty_dict = {'key1': 'value1', 'key2': 2, 'key3': [1, 2, 3]}
# 访问指定键(key)
value1 = non_empty_dict['key1']

如果访问的键(key)不存在,会抛出KeyError异常。

non_empty_dict = {'key1': 'value1', 'key2': 2, 'key3': [1, 2, 3]}
# 访问不存在的键(key)
non_empty_dict['key4'] # KeyError: 'key4'

为了避免抛出异常,可以使用get()方法访问指定的键(key)。

non_empty_dict = {'key1': 'value1', 'key2': 2, 'key3': [1, 2, 3]}
# 使用get()方法访问指定键(key)
value = non_empty_dict.get('key4')
# 如果不存在,则返回默认值
value_default = non_empty_dict.get('key4', 'default_value')

字典的添加和修改

字典类型(dict)的添加和修改操作非常类似,使用中括号 [ ] 访问指定的键(key)即可。

non_empty_dict = {'key1': 'value1', 'key2': 2, 'key3': [1, 2, 3]}
# 添加键(key),值(value)
non_empty_dict['key4'] = 'value4'
# 修改键(key)的值
non_empty_dict['key2'] = 'new_value'

字典的删除

字典类型(dict)可以使用del语句或者pop()方法来删除指定的键值对(key-value pair)。

non_empty_dict = {'key1': 'value1', 'key2': 2, 'key3': [1, 2, 3]}
# 使用del语句删除键值对(key-value pair)
del non_empty_dict['key1']
# 使用pop()方法删除键值对(key-value pair),同时获取其值
value2 = non_empty_dict.pop('key2')

字典的遍历

字典类型(dict)提供了通过键(key)遍历的方式和通过键值对(key-value pair)遍历的方式两种方法。

通过键(key)遍历

non_empty_dict = {'key1': 'value1', 'key2': 2, 'key3': [1, 2, 3]}
# 通过键遍历
for key in non_empty_dict:
    print(f'key: {key}, value: {non_empty_dict[key]}')

通过键值对(key-value pair)遍历

non_empty_dict = {'key1': 'value1', 'key2': 2, 'key3': [1, 2, 3]}
# 通过键值对遍历
for key, value in non_empty_dict.items():
    print(f'key: {key}, value: {value}')

示例

示例1

下面是一个通过字典统计单词频率的示例。

text = "I am a developer. I love coding. I love Python."
# 将文本转为小写,并且去除标点符号
words = text.lower().replace('.', '').split()
# 统计单词出现次数
word_freq = {}
for word in words:
    if word in word_freq:
        word_freq[word] += 1
    else:
        word_freq[word] = 1
# 输出结果
for key, value in word_freq.items():
    print(f'{key}\t{value}')

输出结果为:

i   2
am  1
a   1
developer   1
love    2
coding  1
python  1

示例2

下面是一个通过字典快速查找字符串的示例。在这个例子中,我们创建一个字典,其中键(key)是字符串的开头字符,值(value)是以这个字符开头的所有字符串列表。

words = [
    "apple",
    "banana",
    "cat",
    "dog",
    "elephant",
    "frog",
    "giraffe",
    "hotdog",
    "icecream",
    "jelly",
    "kiwi",
    "lemon",
    "mango",
    "noodle",
    "orange",
    "pepper",
    "queen",
    "rabbit",
]
# 创建字典
word_dict = {}
for word in words:
    first_char = word[0]
    if first_char in word_dict:
        word_dict[first_char].append(word)
    else:
        word_dict[first_char] = [word]
# 查找
key = 'a'
if key in word_dict:
    print(f"{key}: {word_dict[key]}")
else:
    print(f"{key} not found")

输出结果为:

a: ['apple']

以上就是本文对Python字典类型(dict)用法的完整攻略,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基本数据结构之字典类型dict用法分析 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Python实现的手机号归属地相关信息查询功能示例

    下面是“Python实现的手机号归属地相关信息查询功能示例”的完整攻略。 介绍 在日常生活中,我们经常需要查询手机号码归属地信息。这篇攻略将介绍如何使用Python实现手机号码归属地相关信息查询功能。该功能包括手机号码归属地查询、手机号码地区号查询等。 准备工作 要实现这个功能,我们需要使用Python的网络请求库requests以及解析库Beautiful…

    python 2023年6月3日
    00
  • pytorch中函数tensor.numpy()的数据类型解析

    PyTorch是一个开源的机器学习框架,其中的Tensor是其核心数据类型。Tensor由数据及其相关的操作方法构成,可以理解为多维数组。在Tensor中,我们往往需要对数据进行操作和分析,而函数tensor.numpy()就是将Tensor数据类型转换为numpy的多维数组数据类型。 使用tensor.numpy()函数的步骤 使用tensor.numpy…

    python 2023年6月3日
    00
  • python dict如何定义

    让我来详细讲解Python字典的定义。 Python字典 Python中的dict是一种可变容器模型,它用于存储键值对。字典被称为映射类型,因为它们使用键来映射值。 字典是无序的,即不支持索引和切片等操作,它的元素是由键值对组成的,每个键值对之间用英文冒号(:)分隔,整个字典用大括号({})括起来。例如: my_dict = {‘name’: ‘Tom’, …

    python 2023年5月13日
    00
  • 如何使用Python实现数据库中数据的批量替换?

    以下是使用Python实现数据库中数据的批量替换的完整攻略。 数据库中数据的批量替换简介 在数据库中,批量替换是将多条记录的某些字段值替为新的值。在Python中,可以使用pymysql连接MySQL数据库,并使用UPDATE语句实现批量替换。 步骤1:连接数据库 在Python中,可以使用pymysql连接MySQL数据库。以下是连接到MySQL的基本语法…

    python 2023年5月12日
    00
  • Python数据序列化之pickle模块

    下面是关于Python数据序列化之pickle模块的完整攻略。 什么是pickle模块? pickle模块提供了一个简单的“Python对象序列化”ton来保存Python的对象层级结构,也可以用于将Python对象转换为二进制流的形式进行传输。对于复杂的数据结构或只在Python中存在的数据,pickle为我们提供了存储和读取的便利性。 如何使用pickl…

    python 2023年6月2日
    00
  • Python 生成 -1~1 之间的随机数矩阵方法

    要生成一个在-1~1之间的随机数矩阵,可以使用NumPy中的random模块。下面是具体的步骤和示例说明: 步骤一:导入NumPy模块 在Python中,要使用NumPy生成随机数矩阵,首先需要导入NumPy模块。可以使用以下语句导入NumPy: import numpy as np 步骤二:使用random模块生成随机数矩阵 NumPy中的random模块…

    python 2023年6月3日
    00
  • 详解Python PIL ImageDraw.Draw.chord()

    Python PIL库中的ImageDraw模块提供了一些常用的图片绘制方法,其中包括了绘制扇形和弧形的功能,即chord()方法。本文将为大家详细介绍Python PIL ImageDraw.Draw.chord()的完整攻略。 1. 简介 ImageDraw.Draw.chord(xy, start, end, fill=None, outline=No…

    python-answer 2023年3月25日
    00
  • Python脚本开发中的命令行参数及传参示例详解

    让我详细讲解一下“Python脚本开发中的命令行参数及传参示例详解”的完整攻略。 什么是命令行参数 命令行参数是在运行Python脚本时,由命令行中传进Python解释器的参数。在Python脚本开发中,我们经常需要接受一些由命令行传入的参数,以便进行不同的处理。 命令行参数的传入 命令行参数的传入有多种方式,包括使用argparse模块、使用sys模块、使…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部