Python 列表操作指南3

示例,将新列表中的所有值设置为 'hello':

Python 复制代码
newlist = ['hello' for x in fruits]

表达式还可以包含条件,不像筛选器那样,而是作为操纵结果的一种方式:

示例,返回 "orange" 而不是 "banana":

Python 复制代码
newlist = [x if x != "banana" else "orange" for x in fruits]

列表对象具有 sort() 方法,默认情况下将对列表进行字母数字排序,升序排列:

示例,对列表按字母顺序排序:

Python 复制代码
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist)

示例,对列表按数字顺序排序:

Python 复制代码
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)

要进行降序排序,请使用关键字参数 reverse = True:

示例,对列表进行降序排序:

Python 复制代码
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse=True)
print(thislist)

示例,对列表进行降序排序:

Python 复制代码
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse=True)
print(thislist)

您还可以通过使用关键字参数 key = function 来自定义自己的函数。该函数将返回一个数字,用于对列表进行排序(首先是最小的数字):

示例,根据数字距离 50 的接近程度对列表进行排序:

Python 复制代码
def myfunc(n):
  return abs(n - 50)

thislist = [100, 50, 65, 82, 23]
thislist.sort(key=myfunc)
print(thislist)

默认情况下,sort() 方法区分大小写,这导致所有大写字母在小写字母之前排序:

示例,区分大小写的排序可能会导致意外结果:

Python 复制代码
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)

幸运的是,在对列表进行排序时,我们可以使用内置函数作为键函数。因此,如果您想要不区分大小写的排序函数,请使用 str.lower 作为键函数:

示例,执行不区分大小写的列表排序:

Python 复制代码
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key=str.lower)
print(thislist)

如果要反转列表的顺序,而不考虑字母表顺序,该怎么办?reverse() 方法将元素的当前排序顺序反转。

示例,反转列表项的顺序:

Python 复制代码
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)

您不能简单地通过键入 list2 = list1 来复制一个列表,因为:list2 将只是对 list1 的引用,对 list1 进行的更改也会自动在 list2 中进行。有多种方法可以进行复制,其中一种方法是使用内置的列表方法 copy()。

示例,使用 copy() 方法复制一个列表:

Python 复制代码
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)

另一种复制的方法是使用内置的 list() 方法。

示例,使用 list() 方法复制一个列表:

Python 复制代码
thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)

在Python中,有多种方法可以连接两个或多个列表。其中一种最简单的方法是使用 + 运算符。

示例,连接两个列表:

Python 复制代码
list1 = ["a", "b", "c"]
list2 = [1, 2, 3]

list3 = list1 + list2
print(list3)

另一种连接两个列表的方法是将 list2 中的所有项逐一附加到 list1 中:

示例,将 list2 附加到 list1:

Python 复制代码
list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

for x in list2:
  list1.append(x)

print(list1)

或者您可以使用 extend() 方法,其目的是将一个列表的元素添加到另一个列表中:

示例,使用 extend() 方法将 list2 添加到 list1 的末尾:

Python 复制代码
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 腾讯开发者社区 阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

相关推荐
间彧9 分钟前
Spring Cloud Gateway详解与应用实战
后端
小蕾Java28 分钟前
PyCharm 软件使用各种问题 ,解决教程
ide·python·pycharm
Lucky_Turtle31 分钟前
【PyCharm】设置注释风格,快速注释
python
kunge1v51 小时前
学习爬虫第四天:多任务爬虫
爬虫·python·学习·beautifulsoup
萧鼎1 小时前
Python schedule 库全解析:从任务调度到自动化执行的完整指南
网络·python·自动化
EnCi Zheng1 小时前
SpringBoot 配置文件完全指南-从入门到精通
java·spring boot·后端
烙印6011 小时前
Spring容器的心脏:深度解析refresh()方法(上)
java·后端·spring
Lisonseekpan2 小时前
Guava Cache 高性能本地缓存库详解与使用案例
java·spring boot·后端·缓存·guava
B站_计算机毕业设计之家2 小时前
机器学习实战项目:Python+Flask 汽车销量分析可视化系统(requests爬车主之家+可视化 源码+文档)✅
人工智能·python·机器学习·数据分析·flask·汽车·可视化
羊羊小栈3 小时前
基于「多模态大模型 + BGE向量检索增强RAG」的航空维修智能问答系统(vue+flask+AI算法)
vue.js·人工智能·python·语言模型·flask·毕业设计