如何在新行的列表中的单词的每个字母之间打印空格?

New*_*101 3 python for-loop list

我想要的是

sentence = ["This","is","a","short","sentence"]

# Desired Output

T h i s
i s
a
s h o r t
s e n t e n c e
>>>
Run Code Online (Sandbox Code Playgroud)

我尝试了什么

sentence = [row.replace(""," ") for row in sentence]

for item in sentence:
    print(item)
Run Code Online (Sandbox Code Playgroud)

这个问题是它在每行的开头和结尾打印一个空格,但我只想在每个字母之间留一个空格

Spg*_*tCd 7

你可以用 str.join()

sentence = ["This","is","a","short","sentence"]

for w in sentence:
    print(' '.join(w))
Run Code Online (Sandbox Code Playgroud)


Ror*_*ton 5

您可以使用字符串是序列的事实,可以使用splat *运算符将序列拆分为其项目,并且该print函数默认情况下以空格分隔打印项目.这三个事实可以组合成一个短行print(*word),如果word是一个字符串.所以你可以使用

sentence = ["This","is","a","short","sentence"]

for word in sentence:
    print(*word)
Run Code Online (Sandbox Code Playgroud)

这给出了打印输出

T h i s
i s
a
s h o r t
s e n t e n c e
Run Code Online (Sandbox Code Playgroud)

  • 在iPython中使用`%timeit`,SpghttCd的代码使用1.33 ms,而我的使用了5.18 ms.所以我的代码在代码中略短,但执行时间明显更长.我怀疑Python使用时间来计算如何在我的代码中打印每个项目,而在SpghttCd的代码中只打印了一个项目.该项目需要更长时间准备,但打印速度更快 - 显然,更快."引擎盖下",打印每个项目的设置必须很大,类似于Python对列表列表的处理比numpy的数组慢. (2认同)