如何使用这个for循环来获得python中的预期结果

时间:2016-02-22 09:53:00

标签: python loops for-loop

a=['hi','helllo']
for i in a:
    for j in i:
         print j

我的输出为:     H     一世     H     Ë     升     升     Ø

我期待的是     嗨     喂

反正有没有做到这一点?提前谢谢!

1 个答案:

答案 0 :(得分:2)

<强>更新

当你坚持使用嵌套for循环时,这里有一种方法可以使它工作:

import sys

a = ['hi','helllo']
first = True
for i in a:
    if not first:
        sys.stdout.write(' ')
    first = False
    for j in i:
         sys.stdout.write(j)
print()

这会将每个字符直接写入sys.stdout。它确保空格字符分隔每个单词,并跳过一些箍以确保没有尾随空格字符。这太糟糕了,我想不出这样做的理由。

这是实现它的更好方法;使用str.join()

>>> a = ['hi','helllo']
>>> print(' '.join(a))
hi helllo

你正在做的方式的问题是内部for循环遍历a中字符串中包含的每个字符,并在它自己的行上打印每个字符。您可以抛弃内部循环并打印每个字符串而不需要换行:

a = ['hi','helllo']
for i in a:
    print i,

print语句上的尾随逗号会阻止打印新行。注:这是一个仅限Python 2的解决方案。 str.join()方法适用于Python 2和3。

在Python 3中,您可以简单地执行此操作:

print(*a)

...如果您通过添加到python文件的顶部来启用print() 函数,则可以使用相同的代码在Python 2中工作:

from __future__ import print_function