将空元素添加到列表中

时间:2014-11-06 05:50:16

标签: python

phrase = "TEST PHRASE"
progress = []

for letter in phrase:
    if letter != None:
        progress.append("-")
    else:
        progress.append("")

print progress

所以我希望这能给我[“ - ”,“ - ”,“ - ”,“ - ”,“”,“ - ”,“ - ”,“ - ”,“ - ”,“ - ”] 所以我可以string.join他们得到---- ----- 基本上是隐藏的字符串。 但是[' - ',' - ',' - ',' - ',' - ',' - ',' - ',' - ',' - ',' - ',' - '] 是我得到的。没有空元素来标记空间。

6 个答案:

答案 0 :(得分:1)

根据我的理解,这就是你想要的?

phrase = "TEST PHRASE"
progress = []
for letter in phrase:
    if letter != " ":
        progress.append("-")
    else:
        progress.append("")
print progress
print " ".join(progress)   ## make sure you give a space between the quotes.

输出

['-', '-', '-', '-', '', '-', '-', '-', '-', '-', '-'] ## empty element in progress
- - - -  - - - - - -         ## empty element in join

答案 1 :(得分:1)

使用!= ' 'append(" ")

phrase = "TEST PHRASE"
progress = []

for letter in phrase:
     if letter != ' ':
        progress.append("-")
     else:
        progress.append(" ")

print ''.join( progress )
#---- ------

答案 2 :(得分:0)

使用if letter != " ":代替if letter != None

答案 3 :(得分:0)

将信件与None进行比较并不是您想要的。空格字符不是None。我会将它与空间进行比较。

if letter != ' ':

答案 4 :(得分:0)

如何改变你的状况。

  phrase = "TEST PHRASE"
    progress = []
    for letter in phrase:
        if letter == " ":
            progress.append("")
        else:
            progress.append("-")
    print(progress)

答案 5 :(得分:0)

虽然你从其他答案中得到了你想要的东西,但如果你需要的是掩盖除了"空格"之外的所有字符,你可以使用正则表达式获得更少的冗长,如下所示:

>>> import re
>>> re.sub(r'[^\s]', '-', "TEST PHRASE")
'---- ------'