2012-05-13 6 views
1

空リストに文字列を入力するのに.appendを使用していますが、アイテムが複数回追加されています。最初の文字列が5回追加され、2番目の文字列が4回追加された後。なぜこうなった?私はkw_2ためkw_1'pear'ため'apple'を使用する場合はここでPythonで.appendを使用すると、項目が複数回追加されています。どうして?

は、私は例えば

kw_list_1 = [] 


def add_kw(): 
    kw_1 = raw_input('enter your first keyword - ') 

    for kw in kw_1: 
     kw_list_1.append(kw_1) 


    kw_2 = raw_input('enter second keyword - ') 

    for kw2 in kw_2: 
     kw_list_1.append(kw_2) 

    print kw_list_1 

を使用していたコードが、これはここで何が起こっている

['apple', 'apple', 'apple', 'apple', 'apple', 'pear', 'pear', 'pear', 'pear'] 

を返されていますか?これにアプローチする正しい方法ではないのですか?

+1

は、なぜあなたはここでループに使用している文字列の文字何度でも表示されるように引き起こしていた私のために働きましたか? –

答えて

2

ループはforです。

for kw in kw_1: 
      kw_list_1.append(kw_1) 

kw_list_1.append(kw_1) forループを削除してください。

9

この2行:

for kw in kw_1: 
    kw_list_1.append(kw_1) 

あなたのループ本体は、文字列の各文字のために一度実行されるように、文字列である、kw_1をループされています。ループ本体は文字列全体をリストに追加します。したがって、"apple"を入力すると、"apple"が5回追加されます。 "pear"が4回追加されます。

+1

さらに、ループごとに変化するもの、 'kw'を使用していないという事実は、ヒントになるはずです。代わりにそれを追加していたら、 '['a'、 'p'、 'p'、 'l'、... 'と表示されます。 – mgold

+0

すばらしい、説明のためにありがとう。私はループがそのように反応することに気付かなかった。 –

0

このプログラムは

kw_list_1 = [] 
def add_kw(): 
    kw_1 = raw_input('enter your first keyword - ') 
    kw_list_1.append(kw_1) 
    kw_2 = raw_input('enter second keyword - ') 
    kw_list_1.append(kw_2) 
    print kw_list_1 
add_kw() 

ループは果実が

関連する問題