Python 列表操作指南3
示例,将新列表中的所有值设置为 'hello':
newlist = ['hello' for x in fruits]
表达式还可以包含条件,不像筛选器那样,而是作为操纵结果的一种方式:
示例,返回 "orange" 而不是 "banana":
newlist = [x if x != "banana" else "orange" for x in fruits]
列表对象具有 sort() 方法,默认情况下将对列表进行字母数字排序,升序排列:
示例,对列表按字母顺序排序:
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist)
示例,对列表按数字顺序排序:
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
要进行降序排序,请使用关键字参数 reverse = True:
示例,对列表进行降序排序:
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse=True)
print(thislist)
示例,对列表进行降序排序:
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse=True)
print(thislist)
您还可以通过使用关键字参数 key = function 来自定义自己的函数。该函数将返回一个数字,用于对列表进行排序(首先是最小的数字):
示例,根据数字距离 50 的接近程度对列表进行排序:
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key=myfunc)
print(thislist)
默认情况下,sort() 方法区分大小写,这导致所有大写字母在小写字母之前排序:
示例,区分大小写的排序可能会导致意外结果:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
幸运的是,在对列表进行排序时,我们可以使用内置函数作为键函数。因此,如果您想要不区分大小写的排序函数,请使用 str.lower 作为键函数:
示例,执行不区分大小写的列表排序:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key=str.lower)
print(thislist)
如果要反转列表的顺序,而不考虑字母表顺序,该怎么办?reverse() 方法将元素的当前排序顺序反转。
示例,反转列表项的顺序:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)
您不能简单地通过键入 list2 = list1 来复制一个列表,因为:list2 将只是对 list1 的引用,对 list1 进行的更改也会自动在 list2 中进行。有多种方法可以进行复制,其中一种方法是使用内置的列表方法 copy()。
示例,使用 copy() 方法复制一个列表:
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)
另一种复制的方法是使用内置的 list() 方法。
示例,使用 list() 方法复制一个列表:
thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)
在Python中,有多种方法可以连接两个或多个列表。其中一种最简单的方法是使用 + 运算符。
示例,连接两个列表:
list1 = ["a", "b", "c"]
list2 = [1, 2, 3]
list3 = list1 + list2
print(list3)
另一种连接两个列表的方法是将 list2 中的所有项逐一附加到 list1 中:
示例,将 list2 附加到 list1:
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
for x in list2:
list1.append(x)
print(list1)
或者您可以使用 extend() 方法,其目的是将一个列表的元素添加到另一个列表中:
示例,使用 extend() 方法将 list2 添加到 list1 的末尾:
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]
list1.extend(list2)
print(list1)
Python具有一组内置方法,您可以在列表上使用这些方法。
| 方法 | 描述 |
|---|---|
| append() | 在列表末尾添加元素 |
| clear() | 移除列表中的所有元素 |
| copy() | 返回列表的副本 |
| count() | 返回具有指定值的元素数量 |
| extend() | 将列表(或任何可迭代对象)的元素添加到当前列表的末尾 |
| index() | 返回具有指定值的第一个元素的索引 |
| insert() | 在指定位置添加元素 |
| pop() | 移除指定位置的元素 |
| remove() | 移除具有指定值的项目 |
| reverse() | 颠倒列表的顺序 |
| sort() | 对列表进行排序 |
最后
为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:
公众号搜索Let us Coding,知乎,开源中国,CSDN,思否,掘金,InfoQ,简书,博客园,慕课,51CTO,helloworld,腾讯开发者社区,阿里开发者社区
看完如果觉得有帮助,欢迎点赞、收藏和关注
Python 列表操作指南3的更多相关文章
- 比较详细Python正则表达式操作指南(re使用)
比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...
- Python天天美味(15) - Python正则表达式操作指南(re使用)(转)
http://www.cnblogs.com/coderzh/archive/2008/05/06/1185755.html 简介 Python 自1.5版本起增加了re 模块,它提供 Perl 风格 ...
- python 列表排序
转自http://www.iplaypython.com/jinjie/jj114.html reverse()方法 将列表中元素反转排序,比如下面这样>>> x = [1,5,2, ...
- python列表、元祖、字典
python列表 ['a','1','vs2'] 里面的值可以改 python元祖 ('a','1','css','sdf12') 里面的值不能改 python字典 {'s ...
- Python列表、元组、字典和字符串的常用函数
Python列表.元组.字典和字符串的常用函数 一.列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中 ...
- Python 列表
python 列表 列表的特点 1.列表是一种可变的数据类型,这点是跟元组有区别的 2.列表中的值是有序的,并且可存放重复的值,这点跟set有区别的 3.python中的列表类似于其它语言中的数组 4 ...
- python 列表生成器
python 列表生成器 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 一个循环 在C语言等其他语言中,for循环一般是这样的 ...
- [转载] Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- Python 列表如何获得一个指定元素所在的下标
在使用Python3.4读取txt数据到列表,由于编码问题,读取到的数据通常会出现'\ufeffX'(x为你想要的数据).这时候如果需要把列表中的数据由字符串转换到数值型的数据的进行数据分析的话就会出 ...
- python列表的常用操作方法
主要介绍了Python中列表(List)的详解操作方法,包含创建.访问.更新.删除.其它操作等,需要的朋友可以参考下. 1.创建列表.只要把逗号分隔的不同的数据项使用方括号括起来即可 List = [ ...
随机推荐
- 韩顺平Spring体系化笔记(内含ioc,aop,动态代理等底层原理)
Spring Spring 核心学习内容 IOC.AOP. JdbcTemplate.声明式事务 1.Spring 几个重要概念 Spring 可以整合其他的框架(Spring 是管理框架的框架) S ...
- LaTeX 的学习笔记
摘自我的洛谷博客 该文章被打开的次数(包括洛谷平台): \(\LaTeX\) 中所有命令都以\开头,后面可以跟一个花括号,代表参数. \documentclass{} 指定了文章类型,有 articl ...
- 如何在 Windows Server 2022 阿里云服务器上搭建自己的 MQTT 服务器。
一.简介 最近,在做一个项目的时候,需要在线管理网络继电器,以前也做过硬件的项目,但是这样的项目不多.现在我想实现一个在线可以接受网络继电器发送的信号,也可以向网络继电器发送命令,控制其的运行.这个功 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十四):顺应 AIGC 应用,自动“续航”回复超长文本消息
开源地址 GitHub:https://github.com/JeffreySu/WeiXinMPSDK Gitee:https://gitee.com/JeffreySu/WeiXinMPSDK 概 ...
- 初识C语言中的typedef、define以及Status
小阿杰最近开始看数据结构啦嘿嘿嘿, 可惜小阿杰C语言功底稀薄,以此篇随笔记录一下我卑微的学习之路/苦涩/苦涩 首先define没啥好说的,在文件开头,定义一个固定不变的值. #define MAXN ...
- CSDN这么公然爬取(piao qie)cnblogs的文章,给钱了吗?
在CSDN网站经常看到有博客转载cnblogs的文章,开始还以为是网友自行转载,后来才发现,这些所谓的转载应该都是机器爬取(piao qie)过去的.不知道cnblogs对此怎么看. 下面看看几个示例 ...
- KVM 硬盘分区扩容(GPT与MBR两种分区、fdisk 与 growpart两种方法)
因为认知顺序的原因,之前我都是用fdisk命令手工删除分区表后重建进行扩容,后面才发现可以用growpart命令. 实战建议直接点 AWS EC2 存储空间扩容 跳转过去参考,学习操作可以继续往下看. ...
- .net通用RSA加密工具类
目前最流行的加密算法莫过于RSA了,以下是我们.net/.net core C#生成环境用的RSA加密工具类,在此分享给大家. using System; using System.IO; using ...
- 注意!JAVA中的值传递
前言:今天在解决一个问题时,程序总是不能输出正确值,分析逻辑思路没问题后,发现原来是由于函数传递导致了这个情况. LeetCode 113 问题:给你二叉树的根节点root和一个整数目标和target ...
- [mysql]MGR简介与部署
前言 MySQL Group Replication,简称MGR,是MySQL官方于2016年推出的一个全新的高可用解决方案,采用Paxos分布式一致性协议作为高可用和一致性解决方案.在MGR之前的高 ...