Python基础入门:深入理解字典与集合

Elena
Elena
发布时间:2026-10-11| 3人浏览过
原创

本文深入解析Python中的字典(Dictionary)和集合(Set)。通过对比JSON格式,阐明字典作为数据结构的独特性,包括Key的可哈希要求、嵌套支持及布尔值差异。详细演示字典的创建、增删改查及嵌套操作,并介绍集合的去重特性与创建方法,帮助初学者掌握核心数据结构。

Python六大标准类型概览

在Python中,数据被划分为六大标准类型。前四种——数字(Number)、字符串(String)、列表(List)和元组(Tuple)——已在之前的内容中介绍。本文将重点讲解剩余两种重要的数据结构:集合(Set)和字典(Dictionary)。

数字(Number)
字符串(String)
列表(List)
元组(Tumple)
集合(Set)
字典(Dictionary)

字典与JSON的本质区别

许多初学者容易将Python字典与JSON格式混淆,但二者在本质、用途和规则上存在显著差异。理解这些区别对于正确使用数据结构至关重要。

1. 格式与本质

  • JSON:是一种轻量级的数据交换格式,本质上是字符串。它用于在不同系统或语言间传输数据。
  • 字典:是Python内置的数据结构,存储在内存中,类型标识为 dict。

2. Key(键)的限制

  • JSON:Key必须是字符串类型。
  • 字典:Key可以是任何可哈希(hashable)的对象,包括字符串、数字和元组。这意味着字典的Key更加灵活。

3. Value(值)的范围

  • JSON:Value仅限于字符串、浮点数、布尔值、null、数组或对象。不支持Python特有的类型。
  • 字典:Value可以是任意类型的对象,包括列表、其他字典等复杂结构。

4. 访问与默认值

  • JSON:访问方式多样(如 [] 或 .),且任意Key不存在时默认返回 undefined。
  • 字典:仅支持下标访问([])。若Key不存在,直接抛出 KeyError 异常,没有默认值。

5. 布尔值与特殊值

  • JSON:使用小写的 true、false 和 null。
  • 字典:使用Python特有的大写布尔值 True、False 以及空值 None。

6. 编码与重复性

  • JSON:中文必须使用Unicode编码,且Key在JSON字符串中可以是有序且允许重复的(尽管标准JSON通常不推荐重复Key)。
  • 字典:Key在字典中不可重复。若Key重复,后赋的值会覆盖先前的值。

字典的创建与操作

字典使用大括号 {} 创建。在Python 2.x或早期版本中,若字典中包含中文字符,必须在文件头部添加 # coding: utf-8 声明,否则解释器无法正确解析中文,导致抛出异常。Python 3.x默认支持UTF-8,但保留该声明仍是良好的编码习惯。

1. 基础创建

最简单的字典由键值对组成:

# coding: utf-8
test1={'name':"zhang san",
    'age':18
}
print(test1);

2. 动态添加与修改

字典是可变的。可以通过下标直接添加新的键值对,或修改已存在的Key对应的Value:

# coding: utf-8
test1={'name':"zhang san",
    'age':18
}
test1["school"]="primary";
print(test1);

3. 嵌套结构

字典的Value可以是列表,列表的元素也可以是字典,形成复杂的嵌套结构:

# coding: utf-8
test1={'name':"zhang san",
    'age':18
}
test1["school"]="primary";
test1["friend"]=["tony","tom","lily"];
print(test1);

进一步,可以将字典放入列表中:

# coding: utf-8
test1={'name':"zhang san",
    'age':18
}
test1["school"]="primary";
test1["friend"]=["tony","tom","lily"];
student=[test1];
print(student);

集合(Set)的创建与特性

集合使用大括号 {} 创建,内部包含多个对象。集合的核心特性是无序和元素唯一(自动去重)。

1. 创建与去重

当创建集合时,如果传入包含重复元素的序列,集合会自动去除重复项。例如,数字 1 和字符串 '1' 是不同的对象,会同时保留;但两个相同的数字只会保留一个。

# coding: utf-8
test1={"1",1}
print(test1);

输出结果通常类似 set(['1', 1])(Python 2)或 {'1', 1}(Python 3),具体格式取决于Python版本,但核心是展示了去重机制。

2. 集合的功能

Python的 set 类型提供了丰富的函数功能,包括并集、交集、差集等集合运算,适用于数据去重和关系运算场景。

以上就是Python基础入门之字典和集合的详细内容,更多关于Python数据结构、JSON处理及集合运算的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。