List Manipulation错误输出

时间:2014-06-15 08:13:11

标签: python list python-2.7 for-loop

我写了这个块:

stst = "Hello World!@#"

empt = []

def shplit(stst):
    tst = stst.split()
    print tst
    for i in tst:
        empt = list(i)
    print empt


shplit(stst)

我从印刷品中得到的是:

['Hello', 'World!@#']
['W', 'o', 'r', 'l', 'd', '!', '@', '#']

我无法弄清楚为什么“你好”这个词。在第二个列表中根本不显示。 为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

您的缩进不正确:

for i in tst:
    empt = list(i)
print empt # this happens after the loop

当你print empt时,循环已经完成,所以你只能看到循环最后一次迭代的值。如果要查看所有迭代,请缩进print一个级别:

for i in tst:
    empt = list(i)
    print empt # this happens inside the loop

或者,如果您想要empt填充所有i个,请使用list.extend

for i in tst:
    empt.extend(i)
print empt

这给出了:

>>> shplit(stst)
['Hello', 'World!@#']
['H', 'e', 'l', 'l', 'o', 'W', 'o', 'r', 'l', 'd', '!', '@', '#']