30

更新しました:

Pythonでは、インデックス範囲に基づいてリストをサブリストに分割する方法

例: 元のリスト:

list1 = [x,y,z,a,b,c,d,e,f,g]

インデックス範囲 0 ~ 4 を使用:

list1a = [x,y,z,a,b]

インデックス範囲 5 ~ 9 を使用:

list1b = [c,d,e,f,g]

ありがとう!

特定の文字列を含むリスト要素の (変数) インデックスを既に知っており、これらのインデックス値に基づいてリストを分割したいと考えています。

また、可変数のサブリストに分割する必要があります! すなわち:

list1a
list1b
.
.
list1[x]
4

7 に答える 7

21

Python では、スライシングと呼ばれます。Python のスライス表記の例を次に示します。

>>> list1 = ['a','b','c','d','e','f','g','h', 'i', 'j', 'k', 'l']
>>> print list1[:5]
['a', 'b', 'c', 'd', 'e']
>>> print list1[-7:]
['f', 'g', 'h', 'i', 'j', 'k', 'l']

ポジティブまたはネガティブにスライスする方法に注意してください。負の数を使用すると、右から左にスライスすることを意味します。

于 2013-09-02T10:20:06.523 に答える
18

スライスで変数を使用できることに注意してください。

l = ['a',' b',' c',' d',' e']
c_index = l.index("c")
l2 = l[:c_index]

これにより、l の最初の 2 つのエントリが l2 に配置されます。

于 2013-09-02T10:33:32.717 に答える
8

インデックスが既にわかっている場合:

list1 = ['x','y','z','a','b','c','d','e','f','g']
indices = [(0, 4), (5, 9)]
print [list1[s:e+1] for s,e in indices]

範囲を包括的にするために、末尾に +1 を追加していることに注意してください...

于 2013-09-02T10:31:31.610 に答える
3

複数のインデックスがある場合、または取得する必要があるインデックスの範囲がわかっている場合の方法の 1 つ:

split_points - 文字列またはリストを分割するポイント

k - 分割する必要がある範囲、例 = 3

split_points = [i for i in range(0, len(string), k)]

parts = [string[ind:ind + k] for ind in split_points]
于 2021-04-11T18:32:44.023 に答える
2
list1=['x','y','z','a','b','c','d','e','f','g']
find=raw_input("Enter string to be found")
l=list1.index(find)
list1a=[:l]
list1b=[l:]
于 2013-09-02T10:28:10.393 に答える