wxPython中的一些小部件有一个方法,如" GetSelections()"它返回所选项目的索引列表。 拥有这个索引列表我可以得到一个项目列表。这样,例如:
>>> list_of_items = ['zero', 'one', 'two', 'three', 'four', 'five']
>>> list_of_indexes = [1,3,5]
>>> [list_of_items[e] for e in list_of_indexes]
['one', 'three', 'five']
所以问题是:最后一个字符串是否有快捷方式?类似的东西:
list_of_items.getitems(list_of_indexes)
谢谢!
答案 0 :(得分:1)
您可以使用的方法很少。
将[1, 3, 5]
替换为等效的slice
对象:
list_of_items = ['zero', 'one', 'two', 'three', 'four', 'five']
list_of_indexes = slice(1, 6, 2)
res = list_of_items[list_of_indexes]
如果您需要提供无法由slice
表示的列表,您可以使用operator.itemgetter
:
from operator import itemgetter
list_of_items = ['zero', 'one', 'two', 'three', 'four', 'five']
list_of_indexes = [1, 3, 5]
res = itemgetter(*list_of_indexes)(list_of_items)
print(res)
('one', 'three', 'five')
第三方库numpy
直接支持您所需的索引语法:
import numpy as np
list_of_items = ['zero', 'one', 'two', 'three', 'four', 'five']
list_of_indexes = [1,3,5]
res = np.array(list_of_items)[list_of_indexes].tolist()