2012-02-13 6 views
0

これは本当に簡単な質問ですが、 のように感じますが、私は理解するのに手助けが必要です。だから、リストの単語による索引付け

、私は次のようにあります

str = 'hello world' 
str.split() # ['hello','world'] 

私はインデックス「世界」にしたいが、STR [1]リストの2番目の文字である「e」を返します。 文字ではなく単語でインデックスを作成するにはどうすればよいですか?

事前にお手伝いをしていただきありがとうございます。

(STRを行うことを教えないでください[5:] ...私はどのように一般的にインデックスの言葉をに知りたい)

答えて

8

はあなたがインデックスに結果my_str.split()を必要とします変数名をに変更しました内蔵のシャドーイングを避けるためには、図10を参照してください。)my_str.split()は、どんな形であれmy_strを変更しません。 StringオブジェクトはPythonでは不変であり、変更することはできません。代わりに、my_str.split()は、索引付け可能な文字列のリストを戻します。

+2

変数名として 'str'を使うのは良い点です...そのような狂気は... – redrah

+0

私は本当に馬鹿だった...ありがとう! – CosmicRabbitMediaInc

0

あなたはしませんでした(文字列である、strをインデックスしています分割した後に値をstrに再割り当てしてください。

使用

str.split()[1] 

またはさらに良い分割結果を保存し、そのインデックス:

my_str = "hello world" 
words = my_str.split() 
print words[1] 

(:

spl = str.split() 
spl[1] 
0

splitではなく、代わりに分割する、リストを返します:

str = 'hello world' 
str_words = str.split() # split returns a list 

print str_words[0] # prints first word "hello" 
1

strはあなたの文字列ではなく、str.split()の結果です。それはリストのために使用することも、むしろ悪い名前組み込みstrタイプの名前だとするので、あなたは、何かに結果を割り当てることstrと呼ばない(好ましくは何かを必要とし、一つでもがstr.split()から返された。

>>> s = 'hello world' 
>>> l = s.split() 
>>> l[1] 
'world' 
関連する問題