1

.append空のリストに文字列を入力するために使用していますが、アイテムが複数回追加されています。最初の文字列が 5 回追加され、2 番目の文字列が 4 回追加された後。なぜこうなった?

これが私が使用しているコードです

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'forkw_1'pear'forを使用すると、kw_2これが返されます

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

何が起きてる?追加はこれにアプローチする正しい方法ではありませんか?

4

3 に答える 3

9

これらの 2 行:

for kw in kw_1:
    kw_list_1.append(kw_1)

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

于 2012-05-13T20:55:03.373 に答える
2

forループが原因です。

  for kw in kw_1:
            kw_list_1.append(kw_1)

kw_list_1.append(kw_1)forループを削除するだけです。

于 2012-05-13T20:58:02.447 に答える
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()

ループにより、果物が文字列内の文字の数だけ表示されていました

于 2013-01-29T09:18:29.020 に答える