Python 中列表、元组、字典、集合方法集:全面解析与实战示例

目录

前言

一.列表(list):有序可变的元素集合

1.增删改查核心方法

2.排序与反转

3.列表推导式(高效创建列表)

常见用法示例

二、元组(Tuple):有序不可变的元素集合

核心方法 

特性说明

三、字典(Dictionary):键值对映射的无序集合

1. 增删改查核心方法

2. 字典推导式(高效创建字典)

3. 注意事项

四、集合(Set):无序唯一元素的集合 

1. 增删核心方法

 2. 集合运算方法

3. 集合推导式(高效创建集合)

五、四种数据结构的对比与适用场景

六、实战技巧:方法选择与性能优化

1.列表去重:

2.字典遍历:

3.避免列表频繁修改:

4.集合去重 vs 字典去重:

总结


前言

在 Python 中,列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)是四种最常用的数据结构,它们各自拥有独特的特性和方法。掌握这些方法是高效处理数据的基础。本文将系统梳理这四种数据结构的核心方法,并通过实例说明其用法,帮助开发者快速查阅和应用。

一.列表(list):有序可变的元素集合

列表是 Python 中最灵活的序列类型,元素可修改、可重复,支持索引和切片操作。

1.增删改查核心方法

方法功能描述示例
append(x)在末尾位置添加元素xlst = [1,2]; lst.append(3)  [1,2,3]
remove(x)删除列表中的x元素

lst[1,2,3];lst.remove(3)

[1,2]

insert(i,x)在列表索引i处添加元素x

lst = [1,2,3]
lst.insert(1, 4)

[1, 4, 2, 3]

updata(x)合并另一个可迭代类型x

lst = [1,2,3]
lst1 = [1,4,2]
lst.extend(lst1)

[1, 2, 3, 1, 4, 2]

pop(i)删除索引为i的元素,并返回值(默认为最后一位)

lst = [1,2,3]
lst.pop(0)

[2, 3]

index(x)查找x元素的索引,找不到则报错

lst = [1,2,3]
print(lst.index(1))

0

clear()删除所有元素lst.clear()
count(x)统计x元素在列表出现的次数

lst = [1,1,3,4,5]

print(lst.count(1))

2.

2.排序与反转

  • sort(key=None, reverse=False):对列表就地排序(默认升序,reverse=True为降序)
lst = [3,1,2]
lst.sort() 
lst.sort(reverse=True) 

结果 

[1,2,3]
[3,2,1]
  • reverse():反转列表元素顺序(就地修改)
lst = [1,2,3]
lst.reverse() 

结果 

[3,2,1]

3.列表推导式(高效创建列表)

列表推导式(List Comprehension)是Python中一种简洁高效的创建列表的方式,通过一行代码即可生成列表,常用于替代循环和map()filter()等函数

[expression for item in iterable if condition]  
 
  • expression:对当前元素的处理表达式。
  • item:迭代变量,取自可迭代对象(如列表、字符串等)。
  • condition:可选过滤条件,仅保留满足条件的元素。

常见用法示例

生成平方数列表

squares = [x**2 for x in range(5)]  # 输出:[0, 1, 4, 9, 16]  
 

过滤偶数

evens = [x for x in range(10) if x % 2 == 0]  # 输出:[0, 2, 4, 6, 8]  
 

嵌套循环

pairs = [(x, y) for x in [1, 2] for y in [3, 4]]  
# 输出:[(1, 3), (1, 4), (2, 3), (2, 4)]  
 

二、元组(Tuple):有序不可变的元素集合

元组与列表类似,但元素一旦定义不可修改,适合存储不可变数据(如坐标、配置参数)。其方法较少,主要用于查询。

核心方法 

方法功能描述示例
index(x,start,stop)从start开始查找x元素位置到stop停止

tu = (1,2,3)
print(tu.index(1, 0, 2))
0

count(x)查找x元素出现的次数

tu = (1,2,3)
print(tu.count(1))

1

特性说明

  • 元组不可修改,因此没有appendremove等修改方法。
  • 可通过切片创建新元组(原元组不变):
tup = (1,2,3)
new_tup = tup[1:] 

(2,3)

三、字典(Dictionary):键值对映射的无序集合

字典以key:value形式存储数据,键(key)唯一且不可变,值(value)可任意类型,适合存储关联数据(如用户信息)。

1. 增删改查核心方法

方法功能描述示例
get(x,-1)通过键值

dc = {
    "id":101,
    "name":"xm"
}
print(dc.get("id",-1))

keys()返回所有键的视图

dc = {
    "id":101,
    "name":"xm"
}
print(dc.keys())

dict_keys(['id', 'name'])

values()返回字典所有值

dc = {
    "id":101,
    "name":"xm"
}
print(dc.values())

dict_values([101, 'xm'])

items()返回所有字典内容

dc = {
    "id":101,
    "name":"xm"
}
print(dc.items())

dict_items([('id', 101), ('name', 'xm')])

update()合并一个字典,重复键会被覆盖

dc = {
    "id":101,
    "name":"xm"
}
dc.update({"age": 21})
print(dc)

{'id': 101, 'name': 'xm', 'age': 21}

pop(x)根据键值x删除对应内容,并返回删除的内容

dc = {
    "id":101,
    "name":"xm"
}
print(dc.pop("name"))
print(dc)

xm
{'id': 101}

popitem()删除最后一个插入字典的键值对,并返回删除的内容

dc = {
    "id":101,
    "name":"xm"
}
print(dc.popitem())
print(dc)

('name', 'xm')
{'id': 101}

clear()删除字典所有内容

dc = {
    "id":101,
    "name":"xm"
}
dc.clear()
print(dc)

{}

2. 字典推导式(高效创建字典)

# 将列表转换为值为索引的字典
lst = ['a','b','c']
dic = {v:k for k,v in enumerate(lst)}
print(dic)  # {'a':0, 'b':1, 'c':2}

3. 注意事项

  • 键必须是不可变类型(如字符串、数字、元组),列表不能作为键。

四、集合(Set):无序唯一元素的集合 

集合用于存储唯一元素,支持数学中的交集、并集等运算,适合去重关系判断。 

1. 增删核心方法

方法功能描述示例
update(iter)合并另一个可迭代对象的元素(去重)

st = {1,3,4,5}
st2 = {3,2,5,7,9}
st.update(st2)
print(st)

{1, 2, 3, 4, 5, 7, 9}

add(x)向集合添加x元素,如果已存在则忽略

st = {1,3,4,5}
st.add(2)
st.add(5)
print(st)

{1, 2, 3, 4, 5}

pop()顺序删除集合内元素,并返回删除的元素(空集合报错)

st = {1,3,4,5}
st.pop()
print(st)

{3, 4, 5}

discard(x)删除元素x,不存在则忽略

st = {1,2,3,4}
st.discard(3)
print(st)

{1, 2, 4}

remove(x)删除元素x,不存在则报错

st = {1,2,3,4}
st.remove(1)
print(st)

{2, 3, 4}

clear()清除集合内所有元素

st = {1,2,3,4}
st.clear()
print(st)

set()

 2. 集合运算方法

方法功能描述示例
union(x)并集

st2 = {3,2,5,7,9}
st = {1,2,3,4}
print(st.union(st2))

{1, 2, 3, 4, 5, 7, 9}

intersection(x)交集

st2 = {3,2,5,7,9}
st = {1,2,3,4}
print(st.intersection(st2))

{2, 3}

difference(x)差集

st2 = {3,2,5,7,9}
st = {1,2,3,4}
print(st.difference(st2))

{1, 4}

st.issubset(st2)判断st是不是st2的子集

st2 = {3,2,5,7,9}
st = {1,2,3,4}
print(st.issubset(st2))

False

st.issuperset(st2)

判断st是不是st2的超集(st2是不是st的子集)

st2 = {3,2,5,7,9}
st = {1,2,3,4,5,6,7,8,9}
print(st.issuperset(st2))

True

3. 集合推导式(高效创建集合)

# 生成1-10的偶数集合
even_set = {x for x in range(1,11) if x % 2 == 0}
print(even_set)  # {2,4,6,8,10}

五、四种数据结构的对比与适用场景

数据结构有序性可变性元素唯一性核心特点适用场景
列表有序可变可重复支持索引、切片,适合动态数据存储序列数据(如日志、列表)
元组有序不可变可重复占用内存少,适合常量数据存储固定配置(如坐标、参数)
字典3.7 + 有序可变键唯一键值映射,查询效率高存储关联数据(如用户信息、配置表)
集合无序可变元素唯一支持数学运算,去重效率高去重、关系判断(如交集、并集)

六、实战技巧:方法选择与性能优化

1.列表去重

利用集合特性快速去重,再转回列表 

lst = [1,2,2,3]
unique_lst = list(set(lst))  # [1,2,3](注意无序)

2.字典遍历

使用items()同时获取键值对,比单独获取键再取值更高效

dic = {'a':1, 'b':2}
for k, v in dic.items():  # 推荐
    print(k, v)

3.避免列表频繁修改

列表头部插入(insert(0, x))效率低,可改用collections.dequeappendleft()

4.集合去重 vs 字典去重

当需要保留顺序时,可用字典键的唯一性(Python 3.7+)

lst = [1,2,2,3]
unique_lst = list(dict.fromkeys(lst))  # [1,2,3](保留顺序)

总结

列表、元组、字典、集合是 Python 数据处理的基石,掌握它们的方法能显著提升代码效率。列表适合动态序列,元组适合固定数据,字典适合键值关联,集合适合去重与关系运算。在实际开发中,需根据数据特性和业务场景选择合适的数据结构,并灵活运用其方法简化逻辑。

建议收藏本文作为速查表,在实践中逐步熟练各方法的细节与差异,让代码更简洁、高效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值