1

.append用一个字符串填充一个空列表,但我的项目被多次附加。在第一个字符串被附加 5 次后,第二个字符串被附加 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_2this 返回

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

这里发生了什么?append 不是解决这个问题的正确方法吗?

4

3 回答 3

9

这两行:

for kw in kw_1:
    kw_list_1.append(kw_1)

您正在循环kw_1,这是一个字符串,因此您的循环体对字符串中的每个字符执行一次。循环体将整个字符串附加到列表中。因此,如果您输入"apple",您将追加"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 回答