按索引访问 Python 列表

nic*_*lis 4 python list

我来自 R 背景,试图找出一种方法来访问给定索引的列表中的多个元素。一个简单的例子如下:

my_list = ["a", "b", "c", "d", "e", "f", "g"]
my_elements = itemgetter(*[1,2])(list(my_list))
my_elements
Run Code Online (Sandbox Code Playgroud)

这将返回第一个和第二个元素——太棒了!但是当我想指定要提取的整数序列时遇到了问题。我将要做的 R 实现将是:

my_list = c("a", "b", "c", "d", "e", "f", "g")
my_elements = my_list[c(1,3:5)]
my_elements
Run Code Online (Sandbox Code Playgroud)

我将如何在 python 中做等效的事情?我尝试过类似的事情:

my_elements = itemgetter(*[1, list(range(3,6))])(list(my_list))
Run Code Online (Sandbox Code Playgroud)

但是我必须协调范围对象,然后它会向列表中添加一个数字列表,而不是直接添加数字序列。我是 Python 新手,但我觉得一定有一种非常简单的方法可以做到这一点,我忽略了?

jua*_*aga 5

请注意,这可能有点矫枉过正,但如果您来自 R,您可以考虑使用numpy/pandas库来实现您习惯的功能,因此,使用 anumpy.ndarray而不是list对象,您可以使用:

>>> import numpy as np
>>> arr = np.array(["a", "b", "c", "d", "e", "f", "g"])
>>> arr[np.r_[1, 3:6]]
array(['b', 'd', 'e', 'f'],
      dtype='<U1')
Run Code Online (Sandbox Code Playgroud)

R 用户会更熟悉numpy/pandas数据结构的索引。Python 不是特定领域的统计编程语言,它是通用的,所以这种花哨的索引不是内置的。