跳至主要内容

Python 列表函数与方法:教程与示例

了解 Python 列表(List)的函数与方法。现在就通过 list() 等 Python 函数与方法的代码示例学习!
· 7分钟 阅读

使用 AI 探索

在 Python 中,您可以使用 list() 函数创建一个可用于分析并可操作的集合。这个数据集合称为列表对象(list object)。

虽然在 Python 中所有的方法都是函数,但并非所有函数都是方法。函数与方法的关键区别在于:函数以对象作为输入,而方法则作用于对象本身。

Python 提供以下列表函数:

  • sort():将列表按升序排序。
  • type(list):返回对象的类类型。
  • append():向列表添加单个元素。
  • extend():向列表添加多个元素。
  • index():返回指定值第一次出现的位置。
  • max(list):返回列表中值最大的元素。
  • min(list):返回列表中值最小的元素。
  • len(list):返回列表的总长度。
  • list(seq):将元组转换为列表。
  • cmp(list1, list2):比较列表 list1 和 list2 的元素。
  • filter(fun,list):使用 Python 函数过滤列表。
  • Python 列表函数与方法

Python 列表 sort 方法

sort() 是一个内置方法,默认按升序对列表排序。不过,您可以通过指定排序条件将顺序从升序改为降序。

按升序排序列表

假设您想将 prices 中的元素按升序排列。输入列表名 prices,后接一个英文句点(.),再接方法名 sort 以及括号即可。

prices = [238.11, 237.81, 238.91]
prices.sort()
print(prices)

# [237.81, 238.11, 238.91]

Python 列表 type() 函数

type() 函数用于返回对象的类类型。

检查列表的数据类型

下面我们来查看 fam 和 fam2 的类型:

fam = ["liz", 1.73, "emma", 1.68, "mom", 1.71, "dad", 1.89]
print(fam)

# ['liz', 1.73, 'emma', 1.68, 'mom', 1.71, 'dad', 1.89]

来看一下该对象的类型:

fam = ["liz", 1.73, "emma", 1.68, "mom", 1.71, "dad", 1.89]
print(type(fam))

# <class 'list'>

接下来看看 fam2。

fam2 = [["liz", 1.73],
        ["emma", 1.68],
        ["mom", 1.71],
        ["dad", 1.89]]
print(fam2)

# [['liz', 1.73], ['emma', 1.68], ['mom', 1.71], ['dad', 1.89]]

来看一下该对象的类型:

fam2 = [["liz", 1.73],
        ["emma", 1.68],
        ["mom", 1.71],
        ["dad", 1.89]]
print(type(fam2))

# <class 'list'>

这些调用表明,fam 和 fam2 实际上都是列表。

Python 列表 append 方法

append() 方法会将您输入的内容添加到所选列表元素的末尾。

向列表添加单个元素

在本示例中,我们通过 append() 方法将 "April" 添加到列表中。使用 append() 会使列表长度增加 1。

months = ['January', 'February', 'March']
months.append('April')
print(months)

# ['January', 'February', 'March', 'April']

Python 列表 extend 方法

extend() 方法会根据提供给它的元素数量相应增加列表长度,因此当您需要一次性向列表添加多个元素时,可以使用该方法。

向列表添加多个元素

x = [1, 2, 3]
x.extend([4, 5])
print(x)

# [1, 2, 3, 4, 5]

Python 列表 index 方法

index() 方法返回指定值第一次出现的位置。

查找元素的位置

在下面的示例中,我们来查看 months 列表中 February 的索引。

months = ['January', 'February', 'March']
prices = [238.11, 237.81, 238.91]

print(months.index('February'))

# 1

该方法显示 February 位于索引 1。现在我们可以使用该索引访问二月份对应的价格。

months = ['January', 'February', 'March']
prices = [238.11, 237.81, 238.91]

print(prices[1])

# 237.81

Python 列表 max 函数

max() 函数会返回输入值中的最大值。

查找列表中的最大值

在此示例中,我们将使用 max() 函数查找名为 price 的列表中最高的价格。

# Find the maximum price in the list price
prices = [159.54, 37.13, 71.17]
price_max = max(prices)
print(price_max)

# 159.54

Python 列表 min 函数

min() 函数会返回输入值中的最小值。

查找列表中的最小值

在这个示例中,您将找到消费者价格指数(CPI)最小的月份。

要识别消费者价格指数最小的月份,首先对 prices 应用 min() 函数,得到 min_price。接着使用 index 方法找到 min_price 的索引位置。最后将该索引用于 months 列表,即可确定 CPI 最小的月份。

months = ['January', 'February', 'March']
prices = [238.11, 237.81, 238.91]

# Identify min price
min_price = min(prices)

# Identify min price index
min_index = prices.index(min_price)

# Identify the month with min price
min_month = months[min_index]
print(min_month)

# February

Python 列表 len 函数

len() 函数显示列表中的元素数量。下面的示例中,我们再次用整数形式查看股票价格数据。

统计列表中的元素个数

stock_price_1 = [50.23]
stock_price_2 = [75.14, 85.64, 11.28]

print('stock_price_1 length is', len(stock_price_1))
print('stock_price_2 length is', len(stock_price_2))

# stock_price_1 length is 1
# stock_price_2 length is 3

Python list() 函数

list() 函数接受一个可迭代对象并将其转换为列表。语法如下:

list([iterable])

将元组转换为列表

在下面的示例中,您将处理股票价格数据。我们先打印一个空列表,再将元组转换为列表,最后打印一个列表。

# empty list
print(list())

# tuple of stock prices
stocks = ('238.11', '237.81', '238.91')
print(list(stocks))

# list of stock prices
stocks_1 = ['238.11', '237.81', '238.91']
print(list(stocks_1))

# []
# ['238.11', '237.81', '238.91']
# ['238.11', '237.81', '238.91']

Python filter() 函数

filter() 函数接收一个函数和列表,返回一个由过滤后元素组成的迭代器。您可以自定义一个 Python 过滤函数,或使用 lambda 函数来获得过滤后的列表。

注意:您也可以使用循环、列表推导式以及字符串模式匹配来实现过滤列表。

按条件过滤列表元素

首先,我们将创建一个返回布尔值的过滤函数,包含简单的逻辑判断。在本例中,我们将过滤出大于 350 的商品价格。然后使用 filter() 将该函数应用于 item_price 列表,并获得一个包含过滤后元素的迭代器。

要访问过滤后的元素,可以使用 for 循环提取,或将迭代器转换为列表。

def filter_price(price):
    if (price > 350):
        return True
    else:
        return False
 
item_price = [230, 400, 450, 350, 370]

# applying filter function
filtered_price = filter(filter_price, item_price)

print(list(filtered_price))

# [400, 450, 370]

您也可以使用 lambda 函数将代码写成一行,并得到过滤后的元素。

item_price = [230, 400, 450, 350, 370]

# lambda function with filter()
filtered_price = filter(lambda a: a > 350, item_price)
print(list(filtered_price))

# [400, 450, 370]

如需进一步了解列表方法与函数,请观看我们课程 Introduction to Python for Finance 中的视频。

本文内容摘自 Adina Howe 开设的 DataCamp 课程 Introduction to Python for Finance。

Abid Ali Awan

作者

Abid Ali Awan

作为一名持证的数据科学家,我热衷于利用前沿技术打造创新的机器学习应用。凭借在语音识别、数据分析与报告、MLOps、对话式人工智能以及自然语言处理方面的扎实背景,我不断打磨构建智能系统的能力,力求带来切实影响。除技术专长外,我也擅长沟通,能够将复杂概念提炼为清晰、简明的表述。因此,我成为数据科学领域备受关注的博主,与不断壮大的数据专业人士社区分享洞见与实践经验。目前,我专注于内容创作与编辑,借助大语言模型打造有力且吸引人的内容,帮助企业与个人更好地发挥数据价值。

Python 列表函数与方法常见问题

What is a list in Python?

Python 的主要内置数据结构之一,可以存储任意数量的项目。Python 列表的主要特性包括:可迭代、有序、可索引、可变,并允许重复值。

How to make a list in Python?

将一系列项目放入方括号中并用逗号分隔,例如 ['cake', 'ice-cream', 'donut']。或者使用内置函数 list() 并传入双括号:list(('cake', 'ice-cream', 'donut'))。要创建空列表,使用空方括号([])或不传入任何参数的 list() 函数(list())。通常会将 Python 列表赋给变量以便后续使用。

What is a Python list used for?

当我们需要将多个相关项目按既定顺序放在一起时使用,项目可能是不同的数据类型,且/或包含重复项。随后我们希望能够修改这些项目、添加或删除项目,并一次性对多个值应用相同的操作。

What kinds of objects can a Python list contain?

任何类型的 Python 对象,包括原始类型(整数、浮点数、字符串、布尔值)和复杂类型(其他列表、元组、字典等)。一个 Python 列表中可以包含不同的数据类型,例如 ['cake', 1, 3.14, [0, 2]],这使其成为非常灵活的数据结构。

Is a Python list ordered?

是的。Python 列表的项目具有固定顺序,因此该数据结构也是可索引的。每个项目都有一个索引,对应其在列表中的位置,首个项目的索引为 0。最后一个项目的索引为 N-1,其中 N 为列表项目数量。

Is a Python list mutable?

是的。Python 列表在创建后仍可修改其项目的值,无需将列表重新赋值给变量。也可添加或删除项目,从而动态改变列表的大小。

Does a Python list allow duplicate values?

是的。由于该数据结构有序且可索引,Python 列表可以包含任意数量的重复项目。

What is the difference between Python append() and extend()?

append() 方法用于在 Python 列表末尾添加单个项目,而 extend() 方法用于添加多个项目。前者使列表长度增加 1,后者则增加添加项目的数量。

主题