Python字符串与基础数据结构操作指南

小石头
小石头
发布时间:2026-10-11| 2人浏览过
原创

本文系统梳理了Python中字符串与基础数据结构的常用操作。涵盖字符串翻转、回文判断、大小写转换、拆分合并,以及列表推导、元素频率统计、字典合并与唯一性检查等核心技巧。通过具体代码示例,帮助开发者快速掌握Python基础编程中的高频操作模式。

字符串处理核心技巧

在Python中,字符串是不可变的序列对象,提供了丰富的内置方法来处理文本数据。掌握字符串的翻转、格式化和分割合并,是进行文本解析的基础。

字符串翻转与回文判断

利用切片语法 [::-1] 是最简洁的字符串翻转方式。对于需要函数式编程风格的场景,可以使用 functools.reduce 结合 lambda 表达式实现。判断回文串时,只需比较原字符串与其翻转后的字符串是否相等即可。

str1 = "hello world!"
# 切片翻转
print(str1[::-1])

from functools import reduce
# reduce函数翻转
print(reduce(lambda x, y : y+x, str1))

# 回文判断示例
def check_palindrome(string):
    print("%s" % string == string[::-1] and "YES" or "NO")

if __name__ == '__main__':
    check_palindrome("123455")

大小写转换与格式化

Python字符串内置了多种大小写处理方法:title() 将每个单词首字母大写,upper() 和 lower() 分别用于全大写和全小写转换,capitalize() 仅将字符串首字母大写。

str1 = "i love you!"
print(str1.title())  # 单词首字母大写
print(str1.upper())  # 所有字母大写
print(str1.lower())  # 所有字母小写
print(str1.capitalize())  # 字符串首字母大写

字符串拆分与合并

split() 方法默认按空格拆分字符串并返回列表,也可指定分隔符。若需去除字符串两端的空白字符,可使用 strip()。将列表元素合并为字符串时,join() 是高效的选择,它使用指定的分隔符连接列表中的元素。

str1 = "i love you!"
print(str1.split())  # 默认按空格拆分
# print(str1.split('\'))  # 以指定字符为分隔符

str1 = " i love you! "
print(str1.strip())  # 去除两边空格

str1 = ["123", "123", "123"]
print(''.join(str1))  # 列表合并为字符串

列表与字典的高级操作

除了字符串,列表和字典是Python中最常用的数据结构。掌握列表推导式、元素统计以及字典合并技巧,能显著提升代码的简洁性与执行效率。

列表推导与元素拓展

列表推导式是Python处理列表的核心语法,支持对列表元素进行批量修改或展开嵌套列表。例如,通过双重循环的列表推导式可以展平二维列表。

# 修改每个列表的值
list1 = [2, 2, 2, 2]
print([x * 2 for x in list1])

# 展开嵌套列表
list2 = [[1, 2, 3], [4, 5, 6], [1]]
print([i for k in list2 for i in k])  # 输出 [1, 2, 3, 4, 5, 6, 1]

元素频率统计与唯一性检查

使用 collections.Counter 可以高效统计列表中元素的出现频率,并支持获取出现次数最多的元素。检查列表元素是否唯一时,可将列表转换为集合(set),通过比较集合与原列表的长度来判断。

from collections import Counter
list1 = ['1', '1', '2', '3', '1', '4']
count = Counter(list1)
print(count)  # 输出 Counter({'1': 3, '2': 1, '3': 1, '4': 1})
print(count['1'])  # 输出 3
print(count.most_common(1))  # 输出 [('1', 3)]

# 检查列表元素是否唯一
list1 = [1, 2, 3, 4, 5, 6]
print('%s' % len(list1) == len(set(list1)) and "NO" or "YES")

字典合并与数值转换

合并两个字典时,可以使用字典解包语法 **dict 或 update() 方法。此外,将数字字符串转换为数字列表时,map() 函数和列表推导式是两种常用且高效的方法。

dirt1 = {'a':2, 'b': 3}
dirt2 = {'c':3, 'd': 5}
# 方法一:字典解包
combined_dict = {**dirt1, **dirt2}
print(combined_dict)

# 方法二:update方法
dirt1.update(dirt2)
print(dirt1)

# 数字字符串转数字列表
str1 = "123456"
list_1 = list(map(int, str1))
list_2 = [int(i) for i in str1]

基础语法与性能监控

Python提供了一些内置函数和模块,用于辅助开发过程中的变量交换、索引获取、性能测试及内存监控。

变量交换与索引枚举

Python支持元组解包语法,可在一行代码中交换两个变量的值。使用 enumerate() 函数可以同时获取列表或字符串的索引和对应的值,这在遍历数据时非常有用。

x = 1
y = 2
x, y = y, x  # 交换变量

str1 = "123456"
list1 = [1, 2, 3, 4, 5]
for i, j in enumerate(str1):
    print(i, j)

代码执行时间与内存占用监控

在性能优化场景中,可以使用 time 模块计算代码执行耗时,或利用 sys.getsizeof() 检查对象的内存占用情况。这些工具有助于识别性能瓶颈和优化内存使用。

import time
start = time.time()
for i in range(1999999):
    continue
end = time.time()
print(end - start)  # 输出执行耗时

import sys
str1 = "123456"
print(sys.getsizeof(str1))  # 输出对象内存占用

以上就是Python字符串与基础数据结构操作的详细内容,更多关于Python基础语法与数据处理技巧的资料请关注本站其它相关文章!

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

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 算法库。