详解Python中映射类型(字典)操作符的概念和使用

详解Python中映射类型(字典)操作符的概念和使用

在Python中,字典(dictionary)是一种映射类型(mapping type),它是一组以 key-value 形式存储的数据结构。在字典中,每一个 key 都唯一地对应一个 value。

字典的基本操作

创建字典

可以使用大括号 {}dict 函数来创建字典。例如:

# 使用大括号创建空字典
my_dict = {}

# 使用大括号创建非空字典
my_dict = {'name': 'Alice', 'age': 18}

# 使用 dict 函数创建字典
my_dict = dict(name='Alice', age=18)

字典的访问操作

字典中的元素可以通过 key 访问。例如:

my_dict = {'name': 'Alice', 'age': 18}

# 访问字典的元素
print(my_dict['name'])  # 输出:Alice
print(my_dict['age'])  # 输出:18

注意,如果访问一个不存在的 key,会抛出 KeyError 异常:

my_dict = {'name': 'Alice', 'age': 18}

try:
    print(my_dict['phone'])
except KeyError as e:
    print(f'KeyError: {e}')  # 输出:KeyError: 'phone'

可以使用 get 方法来避免上述异常,如果 key 不存在,则返回 None 或一个给定的默认值。例如:

my_dict = {'name': 'Alice', 'age': 18}

# 使用 get 方法获取字典中的元素
print(my_dict.get('name'))  # 输出:Alice
print(my_dict.get('phone'))  # 输出:None

# 也可以指定默认值
print(my_dict.get('phone', 'Not Found'))  # 输出:Not Found

字典的修改操作

可以通过 key 直接修改字典中的元素。如果 key 不存在,则会将该元素添加到字典中。例如:

my_dict = {'name': 'Alice', 'age': 18}

# 修改或添加元素
my_dict['name'] = 'Bob'
my_dict['phone'] = '+86 18888888888'

print(my_dict)  # 输出:{'name': 'Bob', 'age': 18, 'phone': '+86 18888888888'}

字典的删除操作

可以使用 del 关键字删除字典中的元素或整个字典。例如:

my_dict = {'name': 'Alice', 'age': 18}

# 删除某个元素
del my_dict['name']

print(my_dict)  # 输出:{'age': 18}

# 删除整个字典
del my_dict

# 会抛出 NameError,因为 my_dict 已被删除
print(my_dict)

字典操作符

in 操作符

in 操作符可以用来检查字典中是否存在指定的 key。例如:

my_dict = {'name': 'Alice', 'age': 18}

# 判断 key 是否存在
if 'name' in my_dict:
    print('name exists')  # 输出:name exists

if 'phone' in my_dict:
    print('phone exists')  # 不输出

not in 操作符

in 操作符相反的是 not in 操作符,它可以用来检查字典中是否不存在指定的 key。例如:

my_dict = {'name': 'Alice', 'age': 18}

# 判断 key 是否不存在
if 'phone' not in my_dict:
    print('phone does not exist')  # 输出:phone does not exist

if 'name' not in my_dict:
    print('name does not exist')  # 不输出

len 函数

len 函数可以用来获取字典中元素的数量。例如:

my_dict = {'name': 'Alice', 'age': 18}

# 获取字典中元素的数量
print(len(my_dict))  # 输出:2

字典遍历

可以使用 items 方法来遍历字典中的每一个 key-value 对。例如:

my_dict = {'name': 'Alice', 'age': 18}

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

输出结果为:

name: Alice
age: 18

示例

使用字典统计单词出现次数

以下代码使用字典统计一段文本中每一个单词出现的次数:

text = 'This is a sample text to demo how to use Python dictionary'

word_count = {}

# 拆分单词,统计出现次数
for word in text.split():
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1

# 输出每一个单词出现的次数
for word, count in word_count.items():
    print(f'{word}: {count}')

输出结果为:

This: 1
is: 1
a: 1
sample: 1
text: 1
to: 1
demo: 1
how: 1
use: 1
Python: 1
dictionary: 1

使用字典实现 switch-case 语句

Python 中并没有 switch-case 语句,但我们可以使用字典来实现类似的功能。以下代码演示如何使用字典实现一个计算器的功能:

def add(x, y):
    return x + y

def sub(x, y):
    return x - y

def mul(x, y):
    return x * y

def div(x, y):
    return x / y

# 定义操作符对应的函数
ops = {
    '+': add,
    '-': sub,
    '*': mul,
    '/': div
}

# 获取用户输入的数值和操作符
x = float(input('请输入第一个数:'))
op = input('请输入操作符:')
y = float(input('请输入第二个数:'))

# 执行操作符对应的函数
result = ops[op](x, y)

# 输出结果
print(f'{x} {op} {y} = {result}')

运行结果如下:

请输入第一个数:6
请输入操作符:*
请输入第二个数:9
6.0 * 9.0 = 54.0

以上就是字典的基本操作和操作符的概念和使用的详细讲解,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python中映射类型(字典)操作符的概念和使用 - Python技术站

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

相关文章

  • 简单介绍Python中的几种数据类型

    当谈到Python编程时,了解数据类型非常重要。Python中有几种内置的基本数据类型,包括数字、字符串、列表、元组、集合和字典。下面逐一介绍这些数据类型。 数字类型 数字类型用于存储数字。Python中的数字类型包括整数、浮点数和复数。这些数字类型都可以在Python中进行基本算术运算,例如加法、减法、乘法和除法。 a = 3 # 整数 b = 3.14 …

    python 2023年5月14日
    00
  • Python字典高级用法深入分析讲解

    Python字典高级用法深入分析讲解 1. 字典概述 Python字典是一种无序、可变的数据类型,用{}括起来,由一个个键值对组成,其中键是唯一的,值可以是任意类型的变量。 下面是一个简单的字典示例: person = {‘name’: ‘Alice’, ‘age’: 22, ‘gender’: ‘female’} 其中,键值对 ‘name’: ‘Alice…

    python 2023年5月13日
    00
  • 解决python3 整数数组转bytes的效率问题

    解决Python3整数数组转bytes的效率问题可以采用两种方式,分别是原生bytes方法和NumPy库的方式。 原生bytes方法 基础方法 将整数数组转换成bytes。 使用Python内置函数bytes()可以将整数数组转换为bytes类型,示例如下: nums = [1, 2, 3, 4] bytes_data = bytes(nums) 这样就可以…

    python 2023年5月31日
    00
  • 命令“python setup.py egg_info”在 /tmp/pip-build-dlih6aks/MarkupSafe/ 中失败,错误代码为 1

    【问题标题】:Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-dlih6aks/MarkupSafe/命令“python setup.py egg_info”在 /tmp/pip-build-dlih6aks/MarkupSafe/ 中失败,错误代码为…

    Python开发 2023年4月8日
    00
  • Python使用面向对象方式创建线程实现12306售票系统

    下面我将为您讲解如何使用面向对象方式创建线程实现12306售票系统。 1. 线程介绍 线程(Thread)是程序执行的最小单位、比进程更小的能独立运行的基本单位。在一个进程中可以有多个线程同时运行,这就是所谓的多线程。Python的标准库中提供了Thread类,可以用于创建线程。 2. 12306售票系统 12306是中国铁路客户服务中心(China Rai…

    python 2023年6月6日
    00
  • Python实战之markdown转pdf(包含公式转换)

    Python实战之markdown转pdf(包含公式转换)的完整攻略可以分为以下几个步骤: 1. 安装必要的库 使用Python Markdown生成PDF需要安装以下库:- markdown- pdfkit 使用数学公式需要安装以下软件:- LaTeX- XeTeX 安装方式请参考官网或自行搜索。 2. 编写Markdown文档 在本地或者在线markdo…

    python 2023年6月3日
    00
  • python 使用OpenCV进行简单的人像分割与合成

    下面我将详细讲解如何使用Python和OpenCV进行简单的人像分割与合成。 什么是OpenCV? OpenCV是一个开源的跨平台计算机视觉库,可用于开发实时图像处理、计算机视觉、人机交互、物体识别等应用。OpenCV支持多种编程语言,包括C++、Python和Java等。 人像分割 人像分割是指将一张图片中的人像从背景中分离出来。在OpenCV中,我们可以…

    python 2023年6月6日
    00
  • Python读取xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file;not supported问题解决

    不过在回答之前,我先提供一下Python读取xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file; not supported问题解决 的背景和原因: 问题背景: 我们使用Python操作xlsx文件时,有时候会遇到一个奇怪的错误——”xlrd.biffh.XLRDError: Excel xlsx file; not…

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