2014-11-06 203 views
0
phrase = "TEST PHRASE" 
progress = [] 

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

print progress 

所以我希望这给我[“ - ”,“ - ”,“ - ”,“ - ”,“”,“ - ”,“ - ”,“ - ” ,“ - ”,“ - ”] 以便我可以string.join他们并获得---- ----- 基本上是一个隐藏的字符串。 但是[' - ',' - ',' - ',' - ',' - ',' - ',' - ',' - ',' - ',' - ',' - '] 我越来越。没有空的元素来标记空间。将空元素添加到列表

+0

对测试字符'”“','不None' – sirlark 2014-11-06 05:54:44

+0

另外,你的压痕是关闭的,在Python这很重要。循环内应该输出进度?在你的else子句中,你追加了一个空字符串,当它被连接和打印时不会输出任何东西。这似乎是你想要的(隐藏的字符串),但不符合你想要的输出示例:'---- -----' – sirlark 2014-11-06 06:04:04

+0

@sirlark把它带到这个论坛的错误。我把它从我的代码中的一个函数中拿出来了。 – aero26 2014-11-06 06:05:14

回答

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 
+0

这是给我所需的列表,但是当我做string.join时,我得到------- A--像以前一样(没有空格)。这只是string.join命令的性质吗? – aero26 2014-11-06 06:01:27

+0

@ aero26请看看我的回答。 – Himal 2014-11-06 06:02:04

+0

@ aero26号我改变了我的代码。请看看它。 :) – 2014-11-06 06:07:08

0

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

0

比较字母None是不是你想要的。空格字符不是None。我会把它比作一个空间。

if letter != ' ': 
0

如何改变你的这种状况。

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

使用!= ' 'append(" ")

phrase = "TEST PHRASE" 
progress = [] 

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

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

如果我要返回而不是打印它,这是一个字符串吗? – aero26 2014-11-06 06:31:10

+0

@ aero26是的,会的。假设'return''.join(progress)' – Himal 2014-11-06 07:02:24

0

虽然你已经得到了你从其他的答案想要的东西,如果你需要的是掩盖所有的字符除了“白色空间”,你可以得到少详细的使用正则表达式,像这样:

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