Python内置数据结构与操作符练习指南

方予
方予
发布时间:2026-10-12 | 4人浏览过
原创

本文精选10道Python内置数据结构与常用操作符的基础练习题,涵盖列表、字符串、字典的操作及高阶函数应用。提供Python 3标准解法与核心逻辑解析,帮助开发者快速掌握数据处理的底层方法与高效写法。

Python内置数据结构与操作符实战演练

第1步:初始化变量并执行基础算术输出

目的:掌握多变量同时赋值与基础运算符的使用。

操作:定义两个整数并在终端直接打印它们的和。

# 支持并列赋值与表达式计算
a, b = 1, 2
print(a + b)

完成状态:终端稳定输出对应算术结果,确认环境已切换至Python 3语法规范。

第2步:列表升序排序与原地变更

目的:区分生成新对象与修改原对象的排序行为差异。

操作:对给定列表进行升序排列,分别使用全局函数与实例方法。

L = [2, 8, 3, 5]
# 返回新排序列表,原L不变
new_L = sorted(L)
print(new_L)

# 原地排序,直接修改L内存地址的内容
L.sort()
print(L)

完成状态:控制台连续打印两行相同序列,变量作用域与内存引用关系符合预期。

第3步:字符串切片逆序与奇位提取

目的:熟悉步进切片语法与列表推导式的组合应用。

操作:利用步长为负数的切片反转字符串;通过范围遍历与取模运算筛选偶数索引字符。

s = '12345'
# 逆序输出
rev_s = s[::-1]
print(rev_s)

# 提取索引0,2,4位置的字符
odd_pos = ''.join([s[i] for i in range(len(s)) if i % 2 == 0])
print(odd_pos)

完成状态:依次输出反转串与指定位置子串,推导式逻辑无越界报错。

第4步:字典键值提取与分隔符拼接

目的:掌握字典视图迭代与字符串Join方法。

操作:获取字典所有键名,将其转为字符串并按逗号连接。

d = {1: 1, 2: 2, 3: 3}
# keys()返回可迭代视图,配合生成器表达式转换类型后拼接
result = ','.join(str(k) for k in d.keys())
print(result)

完成状态:输出格式化为连续的字符串标识,未触发类型不匹配异常。

第5步:素数判定逻辑验证

目的:理解列表推导式配合布尔掩码的过滤机制。

操作:遍历2到100的整数,排除能整除的小于自身的因数,保留质数。

primes = [
    x for x in range(2, 101)
    if not any(x % y == 0 for y in range(2, x))
]
for p in primes:
    print(p, end=' ')
print()

完成状态:终端紧凑输出全部百以内素数,空格分隔清晰。

第6步:矩形面积周长批量计算

目的:练习多返回值并行输出与格式对齐。

a, b = 5, 3
print(f"面积: {a * b}, 周长: {2 * (a + b)}")

第7步:数据集中位数安全计算

目的:处理奇偶长度列表的中间值定位,避免整除精度丢失。

data = [0, 1, 2, 3, 4]
data_sorted = sorted(data)
m = len(data_sorted) // 2
median = (
    data_sorted[m]
    if len(data_sorted) % 2 != 0
    else (data_sorted[m] + data_sorted[m - 1]) / 2.0
)
print(median)

第8步:最大公约数与最小公倍数求解

目的:替代低效遍历,引入标准数学库提升性能。

import math
a, b = 24, 36
gcd_val = math.gcd(a, b)
lcm_val = (a * b) // gcd_val
print(gcd_val, lcm_val)

进阶工具:高阶函数映射与归约应用

第9步:基于map/reduce的阶乘累加

目的:实践函数式编程范式计算级数。

操作:使用reduce计算单值阶乘,外层map批量生成,最后reduce汇总求和。

from functools import reduce

# 单个数字的阶乘
fact = lambda n: reduce(lambda x, y: x * y, range(1, n + 1))

# 1!+2!+3!+4!+5!
total = reduce(lambda a, b: a + b, map(fact, range(1, 6)))
print(total)

完成状态:正确输出级数和,导入路径与回调签名符合Python 3要求。

第10步:filter函数清洗质数序列

目的:掌握真值判断与流式过滤器的协同。

is_prime = lambda x: x > 1 and all(x % i != 0 for i in range(2, int(x**0.5) + 1))
sieve_result = list(filter(is_prime, range(2, 101)))
print(sieve_result)

排查要点与总结

练习过程中需重点关注语法版本差异。Python 3强制要求print作为函数调用并添加括号,除法默认返回浮点数需使用整除符`//`防错,且`reduce`已移至`functools`模块。上述解法均经过本地终端验证,可直接嵌入教学环境或刷题平台。

以上就是Python内置数据结构与操作符练习指南的详细内容,更多关于Python基础语法与数据结构优化的资料请关注本站其它相关文章!

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表