通过 Python 中的索引访问 List 中的多个元素

目录

Access multiple elements in List by their indices in Python

  1. 通过 Python 中的索引访问 List 中的多个元素
  2. 使用 NumPy 通过索引访问 List 中的多个元素
  3. 使用 itemgetter(
  4. 使用 for 循环按索引访问 List 中的多个元素
  5. 使用 map() 按索引访问 List 中的多个元素
  6. 使用 pandas 通过索引访问 List 中的多个元素

在 Python 中通过索引访问 List 中的多个元素

要通过索引访问列表中的多个元素:

  1. 使用列表理解来迭代索引集合。
  2. 访问当前索引处的列表并返回结果。
  3. 新列表将仅包含指定索引处的项目。
主程序
a_list = ['bobby', 'hadz', 'com', 'a', 'b', 'c'] indices = [0, 2, 4] # ✅ using a list comprehension new_list = [a_list[index] for index in indices] print(new_list) # 👉️ ['bobby', 'com', 'b']

该示例使用
列表理解来迭代索引集合。

列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。
主程序
a_list = ['bobby', 'hadz', 'com', 'a', 'b', 'c'] indices = [0, 2, 4] new_list = [a_list[index] for index in indices] print(new_list) # 👉️ ['bobby', 'com', 'b']

在每次迭代中,我们访问当前索引处的列表项并返回结果。

新列表仅包含指定索引处的项目。

使用 NumPy 通过索引访问 List 中的多个元素

如果您使用 NumPy,您可以直接访问多个索引处的 NumPy 数组。

主程序
import numpy as np arr = np.array(['bobby', 'hadz', 'com', 'a', 'b', 'c']) indices = [0, 2, 4] new_list = list(arr[indices]) print(new_list) # 👉️ ['bobby', 'com', 'b']

确保安装了 numpy以便能够运行代码示例。

pip install numpy pip3 install numpy

我们使用
numpy.array
方法创建一个 NumPy 数组并直接在多个索引处访问它。

您可以使用索引列表访问多个索引处的 NumPy 数组。

或者,您可以使用该类operator.itemgetter()

使用 itemgetter() 通过索引访问 List 中的多个元素

这是一个两步过程:

  1. 使用该类operator.itemgetter()获取可调用的对象以获取项目。
  2. 使用该类list()将结果转换为列表。
主程序
from operator import itemgetter a_list = ['bobby', 'hadz', 'com', 'a', 'b', 'c'] indices = [0, 2, 4] new_list = list(itemgetter(*indices)(a_list)) print(new_list) # 👉️ ['bobby', 'com', 'b']

operator.itemgetter
类返回一个可调用对象,该对象获取指定索引

的项目。

例如,x = itemgetter(1)然后调用x(my_list),返回
my_list[1]

同样,x = itemgetter(0, 2, 4)然后调用returns x(my_list) (my_list[0], my_list[2], my_list[4])

当指定多个索引时,该类itemgetter()返回一个包含指定索引处的项目的元组。

最后一步是使用list()类将元组转换为列表对象。

或者,您可以使用简单的for循环。

使用 for 循环通过索引访问 List 中的多个元素

这是一个三步过程:

  1. 声明一个存储空列表的新变量。
  2. 使用for循环遍历索引集合。
  3. 将指定索引处的项目附加到新列表。
主程序
a_list = ['bobby', 'hadz', 'com', 'a', 'b', 'c'] indices = [0, 2, 4] new_list = [] for index in indices: new_list.append(a_list[index]) print(new_list) # 👉️ ['bobby', 'com', 'b']

我们使用for循环来遍历索引集合。

在每次迭代中,我们访问当前索引处的列表并将该项目附加到新列表。

list.append ()方法将一个项目添加到列表的末尾。

主程序
my_list = ['bobby', 'hadz'] my_list.append('com') print(my_list) # 👉️ ['bobby', 'hadz', 'com']

或者,您可以使用该map()功能。

使用 map() 通过索引访问 List 中的多个元素

这是一个三步过程:

  1. 将 lambda 函数和索引集合传递给该map()函数。
  2. lambda 函数应该访问给定索引处的列表。
  3. 使用该类list()
    地图对象转换为列表
主程序
a_list = ['bobby', 'hadz', 'com', 'a', 'b', 'c'] indices = [0, 2, 4] new_list = list( map(lambda index: a_list[index], indices) ) print(new_list) # 👉️ ['bobby', 'com', 'b']

map ()函数将一个函数和一个可迭代对象作为参数,并使用可迭代对象的每个项目调用该函数。

我们传递给的 lambda 函数map()使用列表中的每个索引进行调用indices,并返回原始列表中给定索引处的项目。

最后一步是使用list()类将map对象转换为列表。

您选择哪种方法是个人喜好的问题。我会使用列表理解,因为我发现它们非常直接且易于阅读。

使用 pandas 通过索引访问 List 中的多个元素

您还可以使用该pandas模块通过索引访问列表中的多个元素。

确保您已安装 pandas以便能够运行代码示例。

pip install pandas pip3 install pandas

现在导入pandas并使用Series对象通过索引访问多个元素。

主程序
import pandas as pd series = pd.Series(['bobby', 'hadz', 'com', 'a', 'b', 'c']) indices = [0, 2, 4] new_list = list(series[indices]) print(new_list) # 👉️ ['bobby', 'com', 'b']

Series
类用于存储一维数据,可以
使用ndarray索引列表直接访问。

最后一步是使用list()类将Series对象转换为列表。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: