在python中,我想通过给定的字符串从数组中选择一个范围

时间:2013-05-26 09:37:41

标签: python arrays filter

有没有任何方法或外部库接收一些范围作为字符串并将其转换为数组中的索引?

我的意思是谷歌浏览器中的打印选定页面功能 - link

那么它会从数组中选择相关的项目吗?

示例:

x = ['a','b','c','d','e','f']

x.get_selected_items('1, 3-4, 6')

>>>['a','c','d','f']

由于

4 个答案:

答案 0 :(得分:2)

>>> from operator import itemgetter
>>> x = ['a','b','c','d','e','f']
>>> items = itemgetter(0, slice(2, 4), 5)(x)
>>> [j for i in items for j in (i if isinstance(i, list) else [i])]
['a', 'c', 'd', 'f']

答案 1 :(得分:2)

将文字范围推到this recipe,然后将其传递给operator.itemgetter(),最后将其应用到您的序列中。请注意逐个位,因此要么将每个元素映射为减1,要么在序列的开头放置一个虚拟元素。

答案 2 :(得分:0)

请尝试以下代码

x = ['a','b','c','d','e','f']
y = x[:1] + x[2:4] + x[5:]

答案 3 :(得分:0)

>>> from operator import itemgetter
>>> x = ['a','b','c','d','e','f']
>>> sum(itemgetter(slice(0, 1), slice(2, 4), slice(5, 6))(x), [])
['a', 'c', 'd', 'f']