news 2026/4/17 22:25:56

Python 字符串、列表、元组、字典的方法/API 总结(附:字符串、列表、元组、字典的通用方法总结)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 字符串、列表、元组、字典的方法/API 总结(附:字符串、列表、元组、字典的通用方法总结)

本文总结了Python中字符串、列表、元组和字典的常用方法。


字符串方法包括大小写转换、分割替换等;

列表支持增删改查等可变操作;

元组仅有count和index方法,不可修改;

字典提供键值对操作如get、update等;


文章还对比了各类型的特性:字符串不可变但功能丰富,列表灵活可变,元组不可变适合固定数据,字典查询最快适合映射关系。


最后给出了各类型的实用示例代码,帮助理解基础操作方法。


Python 字符串、列表、元组、字典的方法/API 总结表

1. 字符串方法 (String Methods)

方法描述示例返回值
str.upper()转换为大写"hello".upper()"HELLO"
str.lower()转换为小写"HELLO".lower()"hello"
str.capitalize()首字母大写"hello".capitalize()"Hello"
str.title()每个单词首字母大写"hello world".title()"Hello World"
str.swapcase()大小写互换"Hello".swapcase()"hELLO"
str.strip()移除首尾空白/字符" hi ".strip()"hi"
str.lstrip()移除左侧空白/字符" hi".lstrip()"hi"
str.rstrip()移除右侧空白/字符"hi ".rstrip()"hi"
str.replace(old, new)替换子串"hello".replace("l","x")"hexxo"
str.split(sep)分割为列表"a,b,c".split(",")['a','b','c']
str.join(iterable)连接序列为字符串",".join(['a','b'])"a,b"
str.find(sub)查找子串索引(找不到返回-1)"hello".find("l")2
str.index(sub)查找子串索引(找不到报错)"hello".index("l")2
str.count(sub)统计子串出现次数"hello".count("l")2
str.startswith(prefix)检查是否以...开头"hello".startswith("he")True
str.endswith(suffix)检查是否以...结尾"hello".endswith("lo")True
str.isalpha()是否全是字母"abc".isalpha()True
str.isdigit()是否全是数字"123".isdigit()True
str.isalnum()是否全是字母或数字"abc123".isalnum()True
str.isspace()是否全是空白字符" ".isspace()True
str.center(width)居中对齐"hi".center(5)" hi "
str.ljust(width)左对齐"hi".ljust(5)"hi "
str.rjust(width)右对齐"hi".rjust(5)" hi"
str.zfill(width)用0填充"42".zfill(5)"00042"
str.format()格式化字符串"{} {}".format(1,2)"1 2"
str.encode(encoding)编码为字节"hi".encode()b'hi'

2. 列表方法 (List Methods)

方法描述示例返回值是否原地修改
list.append(x)在末尾添加元素[1,2].append(3)None✅ 是
list.extend(iterable)扩展列表[1,2].extend([3,4])None✅ 是
list.insert(i, x)在指定位置插入[1,3].insert(1,2)None✅ 是
list.remove(x)删除第一个匹配项[1,2,1].remove(1)None✅ 是
list.pop(i)删除并返回元素[1,2,3].pop(1)2✅ 是
list.clear()清空列表[1,2,3].clear()None✅ 是
list.index(x)返回第一个匹配索引[1,2,3].index(2)1❌ 否
list.count(x)统计元素出现次数[1,2,1].count(1)2❌ 否
list.sort()排序[3,1,2].sort()None✅ 是
list.reverse()反转[1,2,3].reverse()None✅ 是
list.copy()浅拷贝[1,2,3].copy()新列表❌ 否

3. 元组方法 (Tuple Methods)

方法描述示例返回值说明
tuple.count(x)统计元素出现次数(1,2,1).count(1)2元组唯一可用的方法
tuple.index(x)返回第一个匹配索引(1,2,3).index(2)1找不到报错

注意:元组是不可变的,所以没有append()remove()sort()等修改方法。

4. 字典方法 (Dictionary Methods)

方法描述示例返回值是否原地修改
dict.keys()返回所有键的视图{'a':1}.keys()dict_keys(['a'])❌ 否
dict.values()返回所有值的视图{'a':1}.values()dict_values([1])❌ 否
dict.items()返回所有键值对视图{'a':1}.items()dict_items([('a',1)])❌ 否
dict.get(key, default)安全获取值{'a':1}.get('b',0)0❌ 否
dict.setdefault(key, default)获取值,不存在则设置d.setdefault('b',2)2✅ 是
dict.update(other)更新/合并字典d.update({'b':2})None✅ 是
dict.pop(key, default)删除并返回值d.pop('a', None)1✅ 是
dict.popitem()删除并返回最后插入的键值对d.popitem()('b',2)✅ 是
dict.clear()清空字典d.clear()None✅ 是
dict.copy()浅拷贝d.copy()新字典❌ 否
dict.fromkeys(seq, value)创建字典(类方法)dict.fromkeys(['a','b'],0){'a':0,'b':0}❌ 否

5. 通用内置函数 (适用于多种类型)

函数描述字符串列表元组字典
len(obj)返回长度✅ (键的数量)
max(obj)返回最大值✅ (键的最大值)
min(obj)返回最小值✅ (键的最小值)
sum(obj)求和
sorted(obj)返回排序后的列表✅ (返回键的排序列表)
reversed(obj)返回反向迭代器
enumerate(obj)返回索引-元素对
zip(*iterables)并行迭代✅ (对键值对)
any(obj)是否有元素为真✅ (值)
all(obj)是否所有元素为真✅ (值)

6. 类型特有操作符

操作符描述字符串列表元组字典
+连接
*重复
in成员检查✅ (子串)✅ (元素)✅ (元素)✅ (键)
not in非成员检查
[]索引/键访问
[:]切片
=赋值
==相等比较
del删除元素

7. 方法分类统计表

类型修改方法查询方法创建方法总方法数
字符串0 (不可变)~40少量~45
列表~10~40~14
元组0 (不可变)202
字典~8~51 (类方法)~14

8. 常用操作速查表

操作字符串列表元组字典
创建空对象""str()[]list()()tuple(){}dict()
创建带初始值"abc"[1,2,3](1,2,3){'a':1}
添加元素+join()append()/insert()d[key]=value
删除元素remove()/pop()del d[key]/pop()
修改元素❌ (不可变)lst[i]=xd[key]=value
获取元素s[i]lst[i]t[i]d[key]
切片s[1:3]lst[1:3]t[1:3]
遍历for c in sfor i in lstfor i in tfor k in d
复制s[:]s.copy()lst[:]lst.copy()t[:]d.copy()
检查存在sub in sx in lstx in tkey in d

9. 内存和性能特点

特性字符串列表元组字典
可变性❌ 不可变✅ 可变❌ 不可变✅ 可变
有序性✅ 有序✅ 有序✅ 有序✅ 有序 (Python 3.7+)
允许重复❌ (键唯一)
索引速度O(1)O(1)O(1)O(1) (通过键)
查找速度O(n)O(n)O(n)O(1) 平均
插入速度O(1) 末尾 / O(n) 中间O(1) 平均
删除速度O(n)O(1) 平均
内存占用中等
哈希性✅ 可哈希❌ 不可哈希✅ 可哈希❌ 不可哈希

10. 实用示例代码

python

# 字符串常用操作 text = " Hello World " print(text.strip()) # "Hello World" print(text.lower()) # " hello world " print(text.replace("World", "Python")) # " Hello Python " print(text.split()) # ['Hello', 'World'] # 列表常用操作 numbers = [1, 2, 3] numbers.append(4) # [1, 2, 3, 4] numbers.insert(0, 0) # [0, 1, 2, 3, 4] numbers.pop() # 返回 4, numbers 变成 [0, 1, 2, 3] numbers.sort(reverse=True) # [3, 2, 1, 0] # 元组常用操作 point = (10, 20) print(point.count(10)) # 1 print(point.index(20)) # 1 # point[0] = 30 # 错误!元组不可变 # 字典常用操作 person = {'name': 'Alice', 'age': 25} print(person.get('name')) # 'Alice' print(person.get('email', 'N/A')) # 'N/A' person.update({'city': 'Beijing'}) # 添加新键值对 email = person.pop('email', None) # 安全删除,返回 None

总结

  • 字符串:方法最多,功能最丰富,但不可变

  • 列表:最灵活,支持增删改查,适合动态数据

  • 元组:方法最少,不可变,适合固定数据

  • 字典:键值对存储,查询最快,适合映射关系


Python 字符串、列表、元组、字典的通用方法总结


1. 核心通用方法/操作表

方法/操作字符串列表元组字典说明
len()返回长度/元素个数
in/not in成员检查(字典检查键)
for ... in迭代遍历
+运算符连接(字典不支持)
*运算符重复(字典不支持)
==比较相等性比较
!=比较不等性比较
copy()浅拷贝(元组无此方法)
count()统计元素出现次数
index()查找索引(字典无此方法)
isinstance()类型检查
sorted()返回排序列表
reversed()反向迭代(字典无序)
max()最大值(字典比较键)
min()最小值(字典比较键)
sum()求和(字符串/字典不支持)
any()是否有真值
all()是否全是真值
enumerate()枚举索引-值对

2. 详细功能对比表

功能分类通用操作字符串列表元组字典注意事项
长度获取len(obj)✅ 字符数✅ 元素数✅ 元素数✅ 键值对数所有类型都支持
成员判断x in obj子串/字符元素元素字典只检查键,不检查值
非成员判断x not in obj同上
迭代遍历for i in obj遍历字符遍历元素遍历元素遍历键字典遍历的是键
相等比较obj1 == obj2值比较值比较值比较键值对比较顺序也影响结果
浅拷贝obj.copy()元组用tuple()或切片
类型检查isinstance(obj, type)检查对象类型
排序sorted(obj)返回字符列表返回新列表返回新列表返回键列表不改变原对象
反转reversed(obj)返回反转迭代器返回反转迭代器返回反转迭代器字典无序不支持
最大值max(obj)最大字符(ASCII)最大元素最大元素最大键字典比较的是键
最小值min(obj)最小字符(ASCII)最小元素最小元素最小键字典比较的是键
真值检查any(obj)是否有非空字符是否有真值元素是否有真值元素是否有真值键值字典检查值
全真检查all(obj)是否全非空字符是否全真值是否全真值是否全真值字典检查值
枚举enumerate(obj)返回索引-元素对
压缩zip(obj1, obj2)并行迭代多个序列

3. 成员检查 (in运算符) 详细对比

类型检查内容示例结果
字符串子串或单个字符"lo" in "hello"True
字符串子串或单个字符"x" in "hello"False
列表元素2 in [1,2,3]True
列表元素5 in [1,2,3]False
元组元素2 in (1,2,3)True
元组元素5 in (1,2,3)False
字典(不是值)"a" in {"a":1, "b":2}True
字典(不是值)1 in {"a":1, "b":2}False

python

# 字典成员检查示例 d = {'name': 'Alice', 'age': 25} print('name' in d) # True (检查键) print('Alice' in d) # False (不检查值) print('Alice' in d.values()) # True (显式检查值)

4. 迭代遍历 (for...in) 详细对比

类型遍历内容示例代码输出
字符串字符for c in "abc": print(c)a b c
列表元素for i in [1,2,3]: print(i)1 2 3
元组元素for i in (1,2,3): print(i)1 2 3
字典for k in {'a':1,'b':2}: print(k)a b

python

# 字典遍历的变体 d = {'a': 1, 'b': 2} # 遍历键 for key in d: print(key) # a, b # 遍历值 for value in d.values(): print(value) # 1, 2 # 遍历键值对 for key, value in d.items(): print(key, value) # a 1, b 2

5. 排序相关对比

操作字符串列表元组字典
sorted(obj)返回字符列表返回新列表返回新列表返回键的排序列表
obj.sort()❌ 无此方法✅ 原地排序❌ 无此方法❌ 无此方法
reversed(obj)返回反转迭代器返回反转迭代器返回反转迭代器❌ 不支持

python

# 排序示例 s = "cba" lst = [3, 1, 2] tup = (3, 1, 2) d = {'b': 2, 'a': 1, 'c': 3} print(sorted(s)) # ['a', 'b', 'c'] print(sorted(lst)) # [1, 2, 3] print(sorted(tup)) # [1, 2, 3] print(sorted(d)) # ['a', 'b', 'c'] (对键排序)

6. 最大值/最小值对比

类型max(obj)行为min(obj)行为示例
字符串最大 ASCII 字符最小 ASCII 字符max("abc")'c'
列表最大元素最小元素max([1,2,3])3
元组最大元素最小元素max((1,2,3))3
字典最大最小max({'a':1,'b':2})'b'

python

# 字典 max/min 示例 d = {'apple': 5, 'banana': 3, 'cherry': 8} print(max(d)) # 'cherry' (键的最大值) print(min(d)) # 'apple' (键的最小值) # 按值找最大/最小 print(max(d, key=d.get)) # 'cherry' (值的最大键) print(min(d, key=d.get)) # 'banana' (值的最小键)

7. 类型检查方法

方法用途示例
isinstance(obj, type)检查对象类型isinstance("abc", str)True
type(obj)获取对象类型type([1,2])<class 'list'>
issubclass(cls, classinfo)检查是否为子类issubclass(list, object)True

python

# 通用类型检查示例 def process_sequence(data): if isinstance(data, (list, tuple)): return len(data) elif isinstance(data, dict): return len(data.keys()) elif isinstance(data, str): return len(data) else: return None print(process_sequence("hello")) # 5 print(process_sequence([1,2,3])) # 3 print(process_sequence((1,2,3,4))) # 4 print(process_sequence({'a':1})) # 1

8. 真值检查对比

类型any()行为all()行为
字符串是否有非空字符是否所有字符都非空
列表是否有真值元素是否所有元素为真值
元组是否有真值元素是否所有元素为真值
字典是否有真值(检查值)是否所有值为真值

python

# any() 和 all() 示例 print(any("hello")) # True (有非空字符) print(any("")) # False (空字符串) print(any([0, False, 1])) # True (有真值) print(all([1, 2, 3])) # True (全为真) print(all([1, 0, 3])) # False (有假值) # 字典示例 d1 = {'a': 1, 'b': 0} d2 = {'a': 1, 'b': 2} print(any(d1.values())) # True (有真值 1) print(all(d1.values())) # False (有假值 0) print(all(d2.values())) # True (全真值)

9. 枚举和压缩对比

操作字符串列表元组字典
enumerate()✅ 索引-字符✅ 索引-元素✅ 索引-元素❌ 不适用
zip()✅ 并行迭代字符✅ 并行迭代元素✅ 并行迭代元素✅ 并行迭代键/值

python

# enumerate 示例 for i, char in enumerate("abc"): print(i, char) # 0 a, 1 b, 2 c for i, item in enumerate([10, 20, 30]): print(i, item) # 0 10, 1 20, 2 30 # zip 示例 names = ["Alice", "Bob"] ages = [25, 30] for name, age in zip(names, ages): print(f"{name}: {age}") # 字典与 zip keys = ['a', 'b', 'c'] values = [1, 2, 3] d = dict(zip(keys, values)) print(d) # {'a': 1, 'b': 2, 'c': 3}

10. 实际应用:通用函数示例

python

def analyze_sequence(data): """ 通用的序列分析函数 适用于字符串、列表、元组、字典 """ print(f"类型: {type(data).__name__}") print(f"长度: {len(data)}") # 成员检查(需要适应不同类型) if isinstance(data, dict): print(f"是否包含键 'a': {'a' in data}") else: print(f"是否包含 'a': {'a' in data}") # 迭代显示前3个元素 print("前3个元素:", end=" ") count = 0 for item in data: if count >= 3: break print(item, end=" ") count += 1 print() # 最大值/最小值 try: print(f"最大值: {max(data)}") print(f"最小值: {min(data)}") except TypeError: print("无法比较大小") # 真值检查 if isinstance(data, dict): print(f"是否有真值: {any(data.values())}") print(f"是否全真值: {all(data.values())}") else: print(f"是否有真值: {any(data)}") print(f"是否全真值: {all(data)}") # 测试不同数据类型 analyze_sequence("hello123") print("-" * 40) analyze_sequence([1, 2, 3, 0, 5]) print("-" * 40) analyze_sequence((10, 20, 30)) print("-" * 40) analyze_sequence({'a': 1, 'b': 2, 'c': 0})

11. 不支持的操作总结

操作字符串列表元组字典原因
append()字符串/元组不可变
remove()字符串/元组不可变
pop()字符串/元组不可变
sort()元组不可变,字典无序
update()仅字典支持
keys()仅字典支持
values()仅字典支持
items()仅字典支持

总结

所有类型都支持的核心操作:

  1. len()- 获取长度

  2. in/not in- 成员检查

  3. for...in- 迭代遍历

  4. ==/!=- 相等比较

  5. isinstance()- 类型检查

  6. sorted()- 排序(返回列表)

  7. max()/min()- 最值

  8. any()/all()- 真值检查

关键差异:

  • 字典in检查的是,而不是值

  • 字典的迭代遍历的是

  • 字符串/元组不可变,所以没有修改方法

  • 字典不支持+*reversed()等操作

理解这些通用方法和差异,可以写出更通用、更灵活的代码!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 22:25:19

‌学工平台实用功能指南:让校园生活更便捷

✅作者简介&#xff1a;合肥自友科技 &#x1f4cc;核心产品&#xff1a;智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华
网站建设 2026/4/17 22:18:58

别再傻傻点图标了!用CMD启动mstsc远程桌面,这5个参数让你效率翻倍

解锁mstsc命令行潜能&#xff1a;5个高效参数让远程桌面操作飞起来 每次看到同事还在用鼠标点开远程桌面图标&#xff0c;然后慢悠悠输入IP地址&#xff0c;我都忍不住想分享这个秘密——其实Windows自带的mstsc命令藏着不少提升效率的宝藏参数。作为一名每天要连接几十台服务器…

作者头像 李华
网站建设 2026/4/17 22:17:23

深度解析MIST显微图像拼接工具:从入门到精通的完整指南

深度解析MIST显微图像拼接工具&#xff1a;从入门到精通的完整指南 【免费下载链接】MIST Microscopy Image Stitching Tool 项目地址: https://gitcode.com/gh_mirrors/mist3/MIST MIST&#xff08;Microscopy Image Stitching Tool&#xff09;是由美国国家标准与技术…

作者头像 李华
网站建设 2026/4/17 22:15:50

口碑好的小六角网销售厂家有哪些

在养殖围栏、边坡防护、园林工程等场景中&#xff0c;小六角网因其网孔均匀、抗拉强度高、防锈防腐等特性成为刚需产品。但市场上厂家众多&#xff0c;如何避开“网孔不均、易生锈、交期不稳”等采购陷阱&#xff1f;本文通过行业对比&#xff0c;结合真实案例与数据&#xff0…

作者头像 李华
网站建设 2026/4/17 22:14:52

实战解析目前最流行的 Rust Web 框架是什么?全面对比与选型建议

Rust 在后端开发中的热度这几年持续上升。原因很直接&#xff1a;高性能、内存安全、并发友好、类型系统强、部署产物轻量。对于很多团队来说&#xff0c;Rust 不再只是“系统编程语言”&#xff0c;而是逐渐进入 API 服务、网关、中间层、实时服务、云原生组件等 Web 场景。但…

作者头像 李华