2016-01-22 108 views
-2

我有一個包含隨機項目的列表,其中一些包含數字和字母。我需要打印僅由字母組成的項目。 我試圖遍歷列表,如果滿足條件,則可迭代打印

for i in my_list: 
    for j in i.split(): 
     if j.isalpha(): 
      print j 

但它只返回

c c 
d d 

我也試過

for i in my_list: 
    if any(n.isalpha() for n in i.split()): 
     print n 

但它返回

NameError: name 'i' is not defined 

我還需要打印的初始內容my_list的,從信中減去數字所以應該是這樣的

a a 
b b 
c c 
d d 

我嘗試這樣做:

for i in my_list: 
    if all(n.isalpha() for n in i.split()): 
     print i.title() 
    elif any(n.isalpha() == False for n in i.split()): 
     print n 

但上述錯誤發生時

NameError: name 'n' is not defined 

因此在本例中爲「一個a1「,我需要找到不包含數字的字符串部分並打印出來,並找到包含數字的部分,將其減去並打印。我被這個困住了。

+1

您的輸出結果應該是我認爲的。它只打印了字母...... – Jacobr365

+2

不應該是'name'n'未定義'嗎? –

+1

正如其他人所說,第一個模塊不是失敗,而第二個模塊有不同的錯誤。 – TigerhawkT3

回答

0
for i in my_list: 
    if all([j.isalpha() for j in i.split()]): 
      print i #this will print the whole item e.g c c 
+2

這隻打印OP的代碼(據稱,雖然我無法複製)現在正在打印,看起來不是OP想要的東西。 –

+0

感謝您的回答,但不會打印出a和b。我需要輸出 a b c c d d – Sharky

0
for i in my_list: 
    for j in i: 
     if j.isalpha(): 
      print j 

既然你沒有指定什麼格式的輸出需要是。這將做你想要的。你雖然接近。

+1

「既然您沒有指定輸出格式需要什麼格式」那麼,是什麼讓您認爲_this_是OP想要的呢? –

+0

它在一行中只輸出一個字母的所有項目 – Sharky