2017-08-08 4 views
1

入力として挿入する単語の位置を見つけるためにこのコードを書いています。文字列が指定された入力と等しい場合、リスト内の文字列の位置を見つける

私は既存の単語を挿入しましたが、私のコードはその位置を特定していません。それは "not found"を返します。

data=["mama","mia","here","I","go","again"] 

inputo= input("word?") 

for item in data: 
    if item is inputo: 
    print (data.index(inputo)) 
else: 
    print("not found") 

答えて

0

isの代わりに==を使用して比較する必要があります。 isは、==が "値の等しいかどうか"を確認している間は同じオブジェクト( "参照")であるかどうかを比較するので、実際にはほとんど役に立ちません(Noneなどの組み込み定数との比較は例外です)。だからissingletonと比較するために使用するか、は実際にあなたがやっていることを知っておくべきです

あなただけtryexcept周りdata.indexを使用することができ、それがどのマニュアルの繰り返しと比較せずに動作するはずですが:

try: 
    print(data.index(inputo)) 
except ValueError: 
    print('not found') 

少なくとも限り、リスト内の唯一の一致があるよう。複数の一致がある場合は、enumerateを使用できます。

for idx, item in enumerate(data): 
    if item == inputo: 
     print(idx) 
else: 
    print("not found") 
関連する問題