Python四种核心集合数据类型详解:列表、元组、集合与字典

Luna
Luna
发布时间:2026-10-15 | 6人浏览过
原创

本文深入解析Python的四种核心集合数据类型:列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)。详细对比它们在有序性、可变性及索引方式上的差异,并逐一演示增删改查、遍历及合并等常用操作方法与代码示例,帮助开发者快速掌握Python数据结构的核心用法。

前言

Python 提供了四种基础的集合数据类型,分别是:

  • 列表(List):一种有序且允许修改的集合,支持重复元素。
  • 元组(Tuple):一种有序且不可修改的集合,支持重复元素。
  • 集合(Set):一种无序且无索引的集合,不包含重复元素。
  • 字典(Dictionary):一种无序、可变且包含索引(键)的集合,键值对中的键不重复。

上述即为Python中常用的几种主要数据类型。

接下来将逐一详细介绍这四种类型及其核心区别。

1. 列表

列表的定义格式为[],其中的字符可以使用双引号或单引号包裹。


x = ["a", "b", "c"]
print(x)

x = ['a', 'b','c']
print(x)

截图如下:

列表提供了丰富的内置方法,以下列举部分常用方法:

方法 描述
append() 在列表的末尾添加一个元素
clear() 删除列表中的所有元素
copy() 返回列表的副本
count() 返回具有指定值的元素数量。
extend() 将列表元素(或任何可迭代的元素)添加到当前列表的末尾
index() 返回具有指定值的第一个元素的索引
insert() 在指定位置添加元素
pop() 删除指定位置的元素
remove() 删除具有指定值的项目
reverse() 颠倒列表的顺序
sort() 对列表进行排序

如何引用列表?可以通过其索引进行访问。

具体访问方式是通过下标值获取对应元素。


x = ["a", "b", "c"]
print(x[1])

支持负索引访问,其中 -1 表示最后一个项目,-2 表示倒数第二个项目。


x = ["a", "b", "c"]
print(x[-1])

可以通过索引范围进行切片访问,范围为左闭右开。


x = ["a", "b", "c"]
print(x[0:1])

x = ["a", "b", "c"]
print(x[0:])

x = ["a", "b", "c"]
print(x[:1])

同样支持负索引的范围切片。

最右侧元素的负索引为-1,切片规则同样遵循左闭右开。


x = ["a", "b", "c"]
print(x[-3:-1])


如何更改列表中的值?

列表是可变对象,可以直接修改其值。

具体操作只需在指定索引处赋予新值即可。


x = ["a", "b", "c"]
x[1]="v"
print(x)

如何在列表中进行遍历输出?

可以使用 for 循环结构进行遍历输出。


x = ["a", "b", "c"]
for y in x:
    print(y)


如何检查列表中是否包含特定值?

可以通过 for 循环结构遍历,若发现该值则进行输出处理。


x = ["a", "b", "c"]
if "a" in x:
    print("yes")

如何获取列表长度?


x = ["a", "b", "c"]
print(len(x))


如何向列表添加元素?

添加元素有多种方式,以下展示时请注意区分不同方法的适用场景。

  • 将项目添加到列表末尾:使用 append() 方法。
  • 在指定的索引处添加项目:使用 insert() 方法。

x = ["a", "b", "c"]
x.append("d")
print(x)

x = ["a", "b", "c"]
x.insert(3,"d")
print(x)


如何从列表中移除元素?

移除元素也有多种方式,请注意区分不同方法的逻辑。

  • remove() 方法用于删除指定的项目值。
  • pop() 方法用于删除指定索引处的元素(若未指定索引,则默认删除最后一项)。
  • del 关键字用于删除指定索引处的元素。
  • clear() 方法用于清空列表中的所有元素。

x.remove("d")

x = ["a", "b", "c"]
x.pop()
print(x)

del x[0]

del x

del x 会彻底删除列表对象,后续尝试访问该变量时将报错。

对比一下清空列表的操作。


x = ["a", "b", "c"]
x.clear()
print(x)


如何合并两个列表?

可以使用 + 运算符直接进行列表合并。


x = ["a", "b", "c"]
y = ["d","e","f"]
x+y

具体添加列表元素可以结合 append 和 extend 方法,通过 for 循环实现添加。


x = ["a", "b", "c"]
y = ["d","e","f"]
for z in y:
    x.append(z)
x


x = ["a", "b", "c"]
y = ["d","e","f"]
x.extend(y)
x


如何构造列表?

可以通过双括号构造函数进行构建。


x = list(("a", "b", "c"))
x

2. 元组

在讲解完列表之后,

相信大家对Python的一些基本概念已有了初步了解。

下面开始讲解元组。

其基本结构与列表大同小异。

区别在于元组以()为结构标识,且一旦创建便不可更改。

方法 描述
count() 返回元组中指定值出现的次数
index() 在元组中搜索指定的值并返回它被找到的位置

x=("a","b","c")
print(x)
print(x[1])
print(x[-1])
print(x[0:1])

如果尝试修改其数值,

程序会抛出错误。

与列表进行对比,

元组不可更改且不可添加元素,也无法单独删除其中的某一项,但可以彻底删除整个元组对象。 在遍历、检查项目是否存在以及获取元组长度的操作上,两者是一致的。

此外,如需创建仅包含一个项目的元组,必须在该项目后添加一个逗号,否则 Python 无法将变量识别为元组类型。


x= ("a",)
print(type(x))

#不是元组
x= ("a")
print(type(x))

也可以通过构建元组的方式创建。


x = tuple(("a", "b", "c")) # 请注意双括号
print(x)

3. 集合

集合是无序且无索引的集合,使用花括号定义。


x = {"a", "b", "c"}
print(x)
方法 描述
add() 向集合添加元素。
clear() 删除集合中的所有元素。
copy() 返回集合的副本。
difference() 返回包含两个或更多集合之间差异的集合。
difference_update() 删除此集合中也包含在另一个指定集合中的项目。
discard() 删除指定项目。
intersection() 返回为两个其他集合的交集的集合。
intersection_update() 删除此集合中不存在于其他指定集合中的项目。
isdisjoint() 返回两个集合是否有交集。
issubset() 返回另一个集合是否包含此集合。
issuperset() 返回此集合是否包含另一个集合。
pop() 从集合中删除一个元素。
remove() 删除指定元素。
symmetric_difference() 返回具有两组集合的对称差集的集合。
symmetric_difference_update() 插入此集合和另一个集合的对称差集。
union() 返回包含集合并集的集合。
update() 用此集合和其他集合的并集来更新集合。

由于集合无序,无法通过索引值直接显示,但可以通过 for 循环进行遍历。

集合中的值无法直接更改,但可以添加新值:

将一个项添加到集合中:使用add()方法。


x = {"a", "b", "c"}
x.add("d")
print(x)

向集合中添加多个项目:使用update()方法。


x = {"a", "b", "c"}
x.update(["d", "e", "f"])
print(x)

删除集合中的项目:使用remove()或discard()方法。

由于集合无序,使用 pop 方法时无法确定具体清除哪个元素。


x = {"a", "b", "c"}

x.pop()

print(x)

clear()用于清空集合内容,del用于彻底删除集合对象。

union()用于合并集合。

构造集合时使用特定语法。


x = set(("a", "b", "c")) # 请留意这个双括号
print(x)

4. 字典

字典是无序、可变且包含索引(键)的集合。

字典使用花括号编写,由键(Key)和值(Value)组成。


x =	{
  "a": "1",
  "b": "2",
  "c": 3
}
print(x)

获取值可以通过直接索引访问或者使用 get 方法获取。

方法 描述
clear() 删除字典中的所有元素
copy() 返回字典的副本
fromkeys() 返回拥有指定键和值的字典
get() 返回指定键的值
items() 返回包含每个键值对的元组的列表
keys() 返回包含字典键的列表
pop() 删除拥有指定键的元素
popitem() 删除最后插入的键值对
setdefault() 返回指定键的值。如果该键不存在,则插入具有指定值的键。
update() 使用指定的键值对字典进行更新
values() 返回字典中所有值的列表

总结

到此这篇关于Python数据类型详细分析的文章就介绍到这了,更多相关Python数据类型分析内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表