一部の範囲を文字列として受け取り、それを配列内のインデックスに変換するメソッドまたは外部ライブラリはありますか?
Google chromeの選択したページの印刷機能のようなものを意味します-リンク
それで、配列から関連するアイテムを選択しますか?
例:
x = ['a','b','c','d','e','f']
x.get_selected_items('1, 3-4, 6')
>>>['a','c','d','f']
ありがとう
>>> 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']
このレシピを使用してテキスト範囲を押し込み、それを に渡しoperator.itemgetter()
、最後にシーケンスに適用します。off-by-one ビットに注意してください。各要素をマッピングして 1 を引くか、シーケンスの先頭にダミー要素を配置してください。
次のコードを試してください。
x = ['a','b','c','d','e','f']
y = x[:1] + x[2:4] + x[5:]
>>> 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']