抓取列表的特定索引

13 浏览
0 Comments

抓取列表的特定索引

有没有办法像在NumPy中那样获取列表的特定索引?

sample = ['a','b','c','d','e','f']
print sample[0,3,5]
>>>['a','d','f']

我试过在Google上搜索,但是我无法找到一个能产生相关结果的好方法来表达我的问题...

0
0 Comments

抓取列表特定索引的问题

在编程过程中,有时候我们需要从一个列表中抓取特定的索引值,然后对这些值进行处理。下面介绍了两种方法来实现这个目标。

首先,我们可以使用列表推导式。代码如下:

sample = ['a','b','c','d','e','f']
[sample[i] for i in (0, 3, 5)]

在这段代码中,我们先定义了一个列表`sample`,然后使用列表推导式来抓取索引0、3和5对应的元素,最终返回一个包含这些元素的新列表。运行结果为`['a', 'd', 'f']`。

另一种方法是自定义一个继承自`list`的类`MyList`,并重写`__getitem__`方法。代码如下:

class MyList(list):
    def __getitem__(self, *args):
        return [list.__getitem__(self, i) for i in args[0]]
mine = MyList(['a','b','c','d','e','f'])
print(mine[0, 3, 5])

在这段代码中,我们定义了一个`MyList`类,继承自`list`。在`MyList`类中,我们重写了`__getitem__`方法,该方法接受一个参数`args`,其中`args[0]`是一个元组,包含了要抓取的索引值。在方法实现中,我们使用列表推导式来抓取对应索引的元素,并返回一个包含这些元素的新列表。运行结果与上述方法相同,为`['a', 'd', 'f']`。

以上两种方法都可以实现从列表中抓取特定索引值的目标。在第一种方法中,我们直接使用了列表推导式,代码简洁。而在第二种方法中,我们通过自定义类来实现,可以更加灵活地处理抓取逻辑。

最后,提到了在处理字符串时,如果想要将抓取的元素组合成一个新的字符串,可以使用`"".join([])`的方式。这样可以将抓取的元素按照指定的连接符进行拼接。如果有更好的方法,欢迎分享。

0