2016-10-16 15 views
0

ゲームで使用されていた以前のユーザー名の配列を検索しようとしています(ユーザー名の前のすべてのゲームのスコアを表示することができます)。このリストは、外部テキストファイルからインポートされています。リストの要素を検索する

for x in range(0, len(lis)): 
    if username == lis[x]: 
     print "yes" 
    print lis[x] 

ここで、たとえば、ユーザー名は「ジャック」です。 lisの複数の要素に値 "Jack"(リストのすべての値を 'print lis [x]'で出力することによって検証されます)が表示されることはありません。

どうなりますか?あなたが書いたコードが動作しない場合

+2

リストの生の値を印刷してみてください。ファイルから読み込んだ場合は、 'Jack'を' Jack \ n'と比較して、もちろん一致しない可能性があります。 –

+0

lis [x] .strip()を呼び出して末尾の改行/空白を取り除く – rassar

+1

(sidenote)in-keywordを使ってオブジェクトがリスト内にあるかどうかを確認することができます: 'if username in lis:print("はい ")'。また、このタイプのことを何度も確認する予定の場合は、セットの使用を検討してください。 – Bendik

答えて

0

をフォーマットされているかどうかを確認、これを試してみてください。

for usernameTest in lis: 
    if username == usernameTest.strip(): 
     print "yes" 
    print lis[x] 
0
if username in lis: 

がリスト

を検索するのトリックを行う必要があり、文字列は同じよう

if username.strip().lower() == lis[x].strip().lower(): 
+0

OPは回避策を求めていません。 –

0

あなたの意図であるかどうかはわかりませんが、少なくともこれははいを印刷します:

lis = ["Jack","Rose", "Joe", "Franz"] 
username = "Joe" 
for x in range(0, len(lis)): 
if username == lis[x]: 
    print ("yes") 
関連する問題