2011-03-09 2 views
0

例えば、後に私は、文字列Python:インデックスなしで文字列の部分文字列を取得するにはどうしたらいいですか?

s = "* * * * * * * = a b = c b = * * * * * * * " 

を持っていると私はすべての項目に印刷したい=「*」の前に7つの項目を含むストリングと7:!

* * * * * * * = a b = c b = * 
* * * * * * = a b = c b = * * 
* * * * * = a b = c b = * * * 
* * * * = a b = c b = * * * * 
* * * = a b = c b = * * * * * 
* * = a b = c b = * * * * * * 
* = a b = c b = * * * * * * * 

使用してみました場合このようなインデックス:

items = s.split(' ') 
    for i in items: 
     s = items.index(i) 
     start = s - 7 
     stop = s + 8 
     print items[start:stop] 

問題は、その要素がリストの2番目の時間を表示された場合、スクリプトは、リスト内の最初の出現のインデックスを取り、あなたがこれを取得することです:

* * * * * * * = a b = c b = * 
* * * * * * = a b = c b = * * 
* * * * * = a b = c b = * * * 
* * * * * * * = a b = c b = * etc. 

誰でもこの手伝いできますか?

+1

この宿題はありますか? –

答えて

2

使用enumerate()あなたが利用できる現在の項目とそのインデックスの両方を持つように:

items = s.split(' ') 
for index, item in enumerate(items): 
    if item != "*": 
     print items[index-7:index+8] 

注:それはセットの開始時に7 *文字未満が存在することが可能です場合、あなたが望むこと若干異なる最終行を使用する:

 print items[max(index-7,0):index+8] 
+0

それは素晴らしい作品です!どうもありがとう。 – May

関連する問題