1

一部の範囲を文字列として受け取り、それを配列内のインデックスに変換するメソッドまたは外部ライブラリはありますか?

Google chromeの選択したページの印刷機能のようなものを意味します-リンク

それで、配列から関連するアイテムを選択しますか?

例:

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

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

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

ありがとう

4

4 に答える 4

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']
于 2013-05-26T09:43:45.497 に答える
2

このレシピを使用してテキスト範囲を押し込み、それを に渡しoperator.itemgetter()、最後にシーケンスに適用します。off-by-one ビットに注意してください。各要素をマッピングして 1 を引くか、シーケンスの先頭にダミー要素を配置してください。

于 2013-05-26T09:45:23.653 に答える
0

次のコードを試してください。

x = ['a','b','c','d','e','f']
y = x[:1] + x[2:4] + x[5:]
于 2013-05-26T09:45:23.427 に答える
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']
于 2013-05-26T09:45:25.677 に答える