a=['hi','helllo']
for i in a:
for j in i:
print j
我的输出为: H 一世 H Ë 升 升 Ø
我期待的是 嗨 喂
反正有没有做到这一点?提前谢谢!
答案 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