Python:子集多个元素
给定以下内容:
mylist = ["a", "b", "c"]
我该如何提取第0个和第2个元素(也就是["a", "c"])呢?
4 个回答
2
这里有一个解决方案(在众多方案中):
[mylist[i] for i in [0, 2]]
3
如果你想要更高级的索引方式,可以使用 numpy 数组。
>>> mylist = ["a", "b", "c"]
>>> import numpy
>>> myarray = numpy.array(mylist)
>>> myarray
array(['a', 'b', 'c'],
dtype='|S1')
>>> myarray[[0,2]]
array(['a', 'c'],
dtype='|S1')
8
虽然这不是使用itemgetter的常规方法,
>>> from operator import itemgetter
>>> mylist = ["a", "b", "c"]
>>> itemgetter(0,2)(mylist)
('a', 'c')
如果索引已经在一个列表里,可以用*
来展开它
>>> itemgetter(*[0,2])(mylist)
('a', 'c')
你也可以使用列表推导式
>>> [mylist[idx] for idx in [0,2]]
['a', 'c']
或者使用map
>>> map(mylist.__getitem__, [0,2])
['a', 'c']