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

yizhihongxing

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实现比较两个列表(list)范围

    以下是详细讲解“Python实现比较两个列表(list)范围)”的完整攻略。 在Python中,可以使用切片操作符和比较算符来比较两个列表的范围。本文将演示如何比较两个列表的范围。 切片符 切片操作可以从一个列表中获取一个子列表。例如: lst = [1, 2, 3, 4, 5] sub_lst = lst[1:3] print(sub_lst) # 输出[…

    python 2023年5月13日
    00
  • Python实现LRU算法的2种方法

    Python实现LRU算法的2种方法 LRU算法是一种常见的缓存淘汰策略,它可以用于实现缓存系统。在本文中,我们将讲解Python实现LRU算法的2种方法,包括使用Python标准库的collections模块和手实现LRU算法。同时,我们还将提供两个示例说明,以帮助读者更好地理解LRU法的使用方法。 方法1:使用collections模块 Python标准…

    python 2023年5月13日
    00
  • Python实现EM算法实例代码

    EM算法是一种常用的统计学习方法,用于解决含有隐变量的概率模型参数估计问题。在Python中,我们可以使用numpy和scipy等库来实现EM算法。以下是一个完整的攻略,包含了EM算法的实现步骤和例代码。 EM算法的实现步骤 EM算法的实现步骤如下: 定义模型。EM算法适用于含有隐变量的概率模型,需要定义模型的参数和隐变量。 初始化参数。需要对模型的参数进行…

    python 2023年5月14日
    00
  • Python获取网段内ping通IP的方法

    下面是 “Python获取网段内ping通IP的方法” 的完整攻略。 一、背景说明 在进行网络相关的测试或操作时,我们有时需要获取当前局域网中哪些主机是可以ping通的,这在排查网络故障、寻找设备等情况下是非常有用的。而Python是一门功能强大的编程语言,可以方便地进行网络测试,下面我们来看一下如何使用Python获取指定网段内ping通的IP地址。 二、…

    python 2023年6月3日
    00
  • Python中排序函数sorted()函数的使用实例

    针对“Python中排序函数sorted()函数的使用实例”这个话题,我为大家整理了以下的完整攻略: 一、什么是sorted()函数? 首先,我们先来了解一下sorted()函数。sorted()函数是Python中内置的用于排序的函数,它可以对字符串、数字、列表、元组等可迭代的数据类型进行排序。 二、sorted()函数的基本用法 sorted()函数的一…

    python 2023年5月14日
    00
  • 致命的 Python 错误:(pygame 降落伞)分段错误不起作用

    【问题标题】:Fatal Python error: (pygame parachute) Segmentation Fault nothing work致命的 Python 错误:(pygame 降落伞)分段错误不起作用 【发布时间】:2023-04-06 16:26:02 【问题描述】: 我有时会遇到这个错误: Fatal Python error: (…

    Python开发 2023年4月7日
    00
  • Python时间戳转换为字符串与字符串转换为时间戳

    关于Python时间戳转换为字符串与字符串转换为时间戳的攻略,我可以提供如下内容: 时间戳转换为字符串 步骤: 1.引入time模块2.使用time模块的strftime()方法(时间戳转换为字符串) – 参数1:格式化字符串 – 参数2:时间元组(由时间戳转换得到) 示例: 下面是一个将时间戳转换为字符串的示例: import time # 获取当前时间戳…

    python 2023年6月2日
    00
  • Sql 将 python 元组合并到键上的数据库中?

    【问题标题】:Sql to merge python tuples into database on keys?Sql 将 python 元组合并到键上的数据库中? 【发布时间】:2023-04-01 00:50:01 【问题描述】: 我有一个 SQL 数据库和一个 Python 元组列表,其中的值按列排序。 我只是想将元组插入到 SQL 数据库中,并在一些…

    Python开发 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部