Python列表处理实战:索引、倒序、过滤与统计排序

云舒
云舒
发布时间:2026-10-16| 4人浏览过
原创

本文通过具体案例演示Python列表的多种处理方式。涵盖使用enumerate获取索引、切片实现倒序、列表推导式筛选偶数并翻倍。此外,深入讲解如何结合random生成随机列表,利用字典统计元素频次,并通过sorted函数与lambda表达式实现按出现次数降序排序,提供从基础到进阶的实用代码示例。

Python列表基础处理:索引、反转与筛选

初学者在学习Python时,常会遇到一些基础但实用的数组处理题目。


假设有一个列表变量


a = [1, 2, 3, 4, 5, 6]


我们需要完成以下任务:首先,


0, 1


1, 2


2, 3


3, 4


4, 5


5, 6


打印输出索引与值的对应关系。


其次,将列表a倒序排列,得到 [6, 5, 4, 3, 2, 1]。


最后,从a中筛选出偶数,并将每个偶数乘以2,最终结果应为 [4, 8, 12]。



以下是初步的实现思路:


复制代码

代码如下:


a=[1,2,3,4,5,6]



for i in a:


print a.index(i),',',i



a.reverse();



print a



for i in a:


if i%2==0


print i*2



虽然上述代码能完成基本功能,但专家指出这种写法不够Pythonic。改进后的代码如下:


复制代码

代码如下:


for k,v in enumerate(a):


print k,v


print a[::-1]


print [i*2 for i in a if not i%2]



随机列表生成与频次统计排序实战

接着,专家又提出了一道进阶题目:



生成一个包含200个随机正整数(范围1~15)的列表。


统计其中每个正整数出现的次数,并按出现次数从高到低排序输出结果。



初学者可能不清楚random模块需要显式导入。



经过尝试,最终实现的代码如下:


复制代码

代码如下:


>>> import random


>>> mylist = [random.randint(1,15) for i in range(1,200)]


>>> s={}


>>> for i in mylist:


if not s.has_key(i):


s[i]=0


else:


s[i]+=1




>>> cmplist = sorted(s.items(),key=lambda(d):d[1])


>>> result = cmplist[::-1]


>>> print result


[(8, 20), (13, 19), (12, 16), (9, 15), (6, 15), (3, 14), (2, 12), (14, 11), (4, 11), (15, 10), (7, 10), (11, 9), (5, 9), (1, 9), (10, 4)]



在循环统计时,专家建议使用字典的get方法简化代码:


复制代码

代码如下:


for i in mylist:


s[i]=s.get(i,0)+1



此外,sorted函数支持直接指定倒序排列。通过查阅资料,可以使用以下方式实现从大到小的排序:


sorted(d.items(),cmp=lambda x,y:cmp(x[1],y[1]),reverse=True)

相关标签:

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

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