我写了这个块:
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', '!', '@', '#']
我无法弄清楚为什么“你好”这个词。在第二个列表中根本不显示。 为什么会发生这种情况?
答案 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', '!', '@', '#']