2014-11-06 267 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") 
'---- ------'