Python-列表、元组、字典、集合

Last updated on June 29, 2025 pm

数据结构

  • 序列类型:列表、元组、字符串
  • 映射类型:字典
  • 集合类型:集合、冻结集合

列表 (List)

列表是Python中最灵活的有序的集合类型

列表的基本特性

  • 有序的集合,元素按照插入的顺序排列
  • 可变,可以修改内容
  • 可以包含任意类型的对象 , 可以嵌套使用
  • 使用方括号[],元素之间用逗号分隔

eg :

list = [123,'test',1.2,1e10,[1,2,3]]

底层实现

列表实际上是一个动态数组,而不是链表

列表在内存中分配的空间通常比实际需要的多,这是为了优化追加的操作

平均世间复杂度为o(1)

列表元素在内存中不连续存储,列表只存储指向各个元素的指针

创建列表

  • 普通方式
list = []
for i in range(10):
	list.append(i)
  • 推导式
list = [i for i in range(10)]
##带有条件的情况
list = [i for i in range(10) if i % 2 == 0]

列表的输出

与字符串的索引一样,列表索引从0开始,第二个索引为1,最后一个元素的索引也可以是-1

  • 直接输出
list = [1,2,3,4,5,6]
print(list)
  • 访问列表中的值
list = [1,2,3,4,5,6]
print(list[1])
  • 截取字符串
list = [1,2,3,4,5,6]
print(list[1:3])

更新列表

使用 append() 方法

eg:

list = [1,2,3,4,5,6]
list.append(7)
print(list)

删除列表元素

  1. 使用del语句
  2. 使用 remove() 方法
  3. 使用 pop() 方法
list = [1,2,3,4,5,6]
list.pop(1)
del list[1]
list.remove(1)
print(list)

列表脚本操作符

表达式 描述
len([1,2,3]) 长度
[1,2,3]+[4,5,6] 组合
[1]*4 重复
3 in [1,2,3] 元素是否存在列表中
for x in [1,2,3]:print(x,end=” “) 迭代

列表常用函数&方法

  • python 包含一下函数
函数 描述
len() 列表元素个数
max() 返回最大值
min() 返回最小值
list(seq) 将元组转换为列表
  • python 包含以下方法
方法 描述
list.append() 在列表末尾追加新的对象
list.count() 统计某个元素在列表中出现的次数
list.extend() 在列表末尾一次性追加另一个序列中的多个值
list.index() 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) 将对象插入列表
list.pop() 移除列表中第一个元素(默认最后一个元素),并且返回该元素的值
list.remove() 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中的元素
list.sort(key=None,reverse=False) 对列表进行排序
list.clear() 清空列表
list.copy() 复制

元组(Tuple)

元组与列表类似,不同之处在于元组的元素不能修改

元组使用 () 小括号,列表使用方括号 []

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开

eg:

tup1 = ("Google","baidu","github","bing")

创建空元组

tup1 = ()

注意:当元组中只包含一个元素时,需要在元素后面加逗号. 否则括号会被当做运算符使用

访问元组

和列表一样,元组可以使用下标索引来访问元组中的值

eg:

tup1 = ("Google","baidu","github","bing")
print ("tup1[0]: ", tup1[0])

修改元组

元组中的元素是不允许被修改的,但是可以对元组进行连接组合

eg:

tup1 = (1,2,3)
tup2 = (4,5)

#tup1[0]=0  这种操作是非法的

tup3 = tup1 + tup2

删除元组

元组中的元素值不允许被删除,但是可以使用del 语句来删除整个元组

eg:

tup1 = ("Google","baidu","github","bing")
del tup1

元组的运算

与字符串一样,元组之间可以使用 +、+=、*号进行运算

eg: 复制

tup1 = ("asd",)*4

元组的内置函数

基本和列表相同,不再赘述

计算个数、最大值、最小值

方法 描述
tuple(iterable) 将可迭代系列转换为元组

字典(Dict)

字典是另一种可变容器模型,且可存储任意类型对象

字典的每个键值 key=>value 用冒号:分割,每个对之间用逗号分隔,整个字典包括在花括号中

d = {key1 : value1, key2 : value2, key3 : value3 }

注意:dict作为python的关键字和内置函数,变量名不建议命名为dict

键 必须是唯一的,但值不必

值可以取任何数据类型,但键必须是不可变的,如字符串,数字

tinydict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}

创建空字典

  • 使用花括号 {} 创建空字典
emptyDict = {}
  • 使用内置函数 dict() 创建空字典
emptyDict = dict()

访问字典中的值

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])

修改字典

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
tinydict['Age'] = 8               # 更新 Age
tinydict['School'] = "菜鸟教程"  # 添加信息

删除字典中的元素

  • 使用del 语句删除字典
# 删除键‘Name’
del qweDict['Name']
# 删除整个字典
del qweDict

del 删除后整个字典不再存在

  • 清空字典
qweDict.clear()

字典键的特性

  • 不允许同一个键出现两次,创建时同一个键如果被赋值两次,后一个值会被记住
  • 键必须不可变,所以可以用数字,字符串或元组充当,而列表就不行

字典内置函数&方法

  • python字典包含以下内置函数
函数 描述
len() 计算元素个数
str() 输出字典
type() 返回输入的变量类型,如果变量是字典,就返回字典类型
  • python字典包含以下内置方法
方法 描述
dict.clear() 删除字典内所有元素
dict.copy() 返回一个字典的浅复制
dict.formkeys() 创建一个新的字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key, default=None) 返回执行键的值,如果键不在字典中返回default 设置的默认值
key in dict 如果键在字典返回true,否返回false
dict.items() 以列表返回一个试图对象
dict.keys() 返回一个试图对象
dict.setdefault(key,dafault=None) 和get()类似,但如果键不在字典中,将回添加键并将值设为default
dict.update(dict2) 把字典dict2的键值对更新到dict中
dict.values() 返回一个试图对象
dict.pop(key) 删除字典key所对应的值,并返回被删除的值
dict.popitem() 返回并删除字典中最后一对键和值

集合(Set)

集合是一个无序的不重复的元素序列

集合中的元素不会重复,并且可以进行交集,并集,差集等常见的集合操作

可以使用花括号{}创建集合,元素之间用逗号,分隔,或者也可以使用set()函数创建

eg:

set1 = {1,2,3,4}
set2 = set([5,6,7])

注意:创建空集合时必须用set()函数,因为 {} 用来创建一个空字典

集合内置方法整合表

方法 描述
add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝多个集合的差集
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合中也存在
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 返回集合的交集
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回False
issubset() 判断指定集合是否为该方法参数集合的子集
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric_difference() 返回两个集合中不重复的元素集合
sysmmetric_difference_update() 移除当前集合中在另外一个指定集合中相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中
union() 返回两个集合的并集
update() 给集合添加元素
len() 计算集合元素的个数

Python-列表、元组、字典、集合
https://blog.lixey.top/posts/df8caf15/
Author
Lixiney
Posted on
June 29, 2025
Licensed under