use*_*527 1 python string list
我有:
letters = ['h','e','l','l','o']
Run Code Online (Sandbox Code Playgroud)
我需要:
'h e l l o'
Run Code Online (Sandbox Code Playgroud)
所以我尝试使用for循环如下:
new_str = ''
for str in letters:
new_str += str + ' '
Run Code Online (Sandbox Code Playgroud)
但结果是:
new_str = 'h e l l o '
Run Code Online (Sandbox Code Playgroud)
有没有办法在o之后没有空字符串?在我已经得到结果之后没有做某事.
对不起,我忘了提到是否有办法通过迭代列表来做到这一点.
>>> letters = ['h','e','l','l','o']
>>> mystr = ' '.join(letters)
>>> print mystr
'h e l l o'
Run Code Online (Sandbox Code Playgroud)
这是最简单,最干净的方法,但如果由于某种原因必须使用for循环,则可以执行以下操作:
mystr = ''
# this keeps the whole operation within the for loop
for i in range(len(letters)):
mystr += letters[i] + ' '
if i == len(letters)-1: # this condition will be tested each iteration, but it seemed more in keeping with your question
mystr = mystr[:-1]
Run Code Online (Sandbox Code Playgroud)
用途str.join:
>>> letters = ['h','e','l','l','o']
>>> " ".join(letters)
'h e l l o'
>>>
Run Code Online (Sandbox Code Playgroud)
编辑:
我想你说你必须使用for循环.如果是这样,你可以使用这个:
>>> letters = ['h','e','l','l','o']
>>> mystr = ""
>>> for letter in letters:
... mystr += letter + " "
...
>>> mystr.strip()
'h e l l o'
Run Code Online (Sandbox Code Playgroud)
但请注意,如果列表包含空格,则应在末尾使用切片而不是 str.strip:
>>> mystr[:-1]
'h e l l o'
>>>
Run Code Online (Sandbox Code Playgroud)
这样,你不会删除应该在那里的任何空间.