组织列表-python

news/2024/10/18 1:32:51/

在你创建的列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信息。有时候,你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式,可根据具体情况选用。

使用方法 使 sort() 对列表进行永久性排序

Python方法sort() 让你能够较为轻松地对列表进行排序。假设你有一个汽车列表,并要让其中的汽车按字母顺序排列。为简化这项任务,我们假设该列表中的所有值都是小写的。
cars.py

cars = ['bmw', 'audi', 'toyota', 'subaru'] 
❶ cars.sort()
print(cars)

方法sort() (见❶)永久性地修改了列表元素的排列顺序。现在,汽车是按字母顺序排列的,再也无法恢复到原来的排列顺序:

['audi', 'bmw', 'subaru', 'toyota']

你还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort() 方法传递参数reverse=True 。下面的示例将汽车列表按与字母顺序相反的顺序排列:

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

同样,对列表元素排列顺序的修改是永久性的:

['toyota', 'subaru', 'bmw', 'audi']

使用函数sorted() 对列表进行临时排序

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted() 。函数sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
下面尝试对汽车列表调用这个函数。

cars = ['bmw', 'audi', 'toyota', 'subaru']print("Here is the original list:")print(cars)print("\nHere is the sorted list:")print(sorted(cars))print("\nHere is the original list again:")print(cars)

我们首先按原始顺序打印列表(见❶),再按字母顺序显示该列表(见❷)。以特定顺序显示列表后,我们进行核实,确认列表元素的排列顺序与以前相同(见❸)。

Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']
Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']
❹ Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']

注意,调用函数sorted() 后,列表元素的排列顺序并没有变(见❹)。如果你要按与字母顺序相反的顺序显示列表,也可向函数sorted() 传递参数reverse=True 。

注意:在并非所有的值都是小写时,按字母顺序排列列表要复杂些。决定排列顺序时,有多种解读大写字母的方式,要指定准确的排列顺序,可能比我们这里所做的
要复杂。然而,大多数排序方式都基于本节介绍的知识。

倒着打印列表

要反转列表元素的排列顺序,可使用方法reverse() 。假设汽车列表是按购买时间排列的,可轻松地按相反的顺序排列其中的汽车:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)

注意,reverse() 不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排列顺序:

['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']

方法reverse() 永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此只需对列表再次调用reverse() 即可。

确定列表的长度

使用函数len() 可快速获悉列表的长度。在下面的示例中,列表包含4个元素,因此其长度为4:


```csharp>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> len(cars)
4

在你需要完成如下任务时,len() 很有用:确定还有多少个外星人未被射杀,需要管理多少项可视化数据,网站有多少注册用户等。

注意 Python计算列表元素数时从1开始,因此确定列表长度时,你应该不会遇到差一错误。


http://www.ppmy.cn/news/327768.html

相关文章

【uni-app】使用uni-app实现简单的登录注册功能

文章目录 前言一、页面布局二、注册页面1.注册接口使用2.注册成功提示3.注册成功页面跳转4.完整代码 三、登录页面1.登录接口使用2.本地存储使用3.完整代码 总结 前言 大家好,今天和大家分享一下如何在uni-app中实现简单的登录注册功能。 首先你需要掌握一下知识点…

使用AIGC工具巧用Linux系统

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

【LIN通讯出现问题】

LIN信号发出了,但是没有收到响应的原因 如果你发送了LIN(局域网互连)信号,但没有收到响应,可能有以下几个原因: 线路故障:检查信号线路是否连接正确,可能存在接触不良、开路或短路等…

集成正态云和动态扰动的哈里斯鹰优化算法(IHHO)-附代码

集成正态云和动态扰动的哈里斯鹰优化算法(IHHO) 文章目录 集成正态云和动态扰动的哈里斯鹰优化算法(IHHO)1.哈里斯鹰优化算法2.改进哈里斯鹰优化算法2.1 正态云模型2.2 随机反向学习思想2.3 动态扰动策略 3.实验结果4.参考文献5.Matlab代码6.python代码 摘要: 针对基…

Mybatis Generator源码修改

文章目录 报java.net.MalformedURLException错误解决问题原因:编译的时候没有把下面的dtd文件打进去解决方法 XML文件判空优化-增加空字符串修改InsertSelectiveElementGenerator修改UpdateByPrimaryKeySelectiveElementGenerator XML文件判空优化-最佳解决方案 报j…

基于MSP430送药小车 ----- 拓展篇【2021年全国电赛(F题)】

文章目录 该篇文章并非完全按照赛题要求完成,仅当做个人休闲娱乐产品!!!! 一、赛题分析二、逻辑处理分析1. 近端病房2. 中端病房3. 远端病房 三、程序设计1. 近端送药2. 中端送药3. 远端送药4. 通信处理①蓝牙②OpenMV…

企业邮箱哪个好,邮箱品牌介绍—TOM邮箱

TOM邮箱TOM集团旗下的互联网产品, 1998年推出免费邮箱业务,是目前中国最大的电子邮箱服务提供商之一。自成立以来,TOM邮箱一直致力于为用户提供更安全、更稳定的邮箱服务系统。同时全面拓展邮箱业务,2001年开通VIP收费邮箱服务&am…

C语言 数组,指针,结构体,文件的训练内容

《计算思维(二)》实验报告 基础实践二 班级: 学号: 姓名: 实验时间: 2023 年 第01~12周 成绩 哈尔滨工程大学计算机基础课程教学中心 实验五:数组 实验题目1&a…