2016-05-02 43 views
1

我有以下列表:[['F','G','C'],['S',3,7],['C',3,'D ']]Python,從子列表中刪除所有數字

但我想有:[[' F」, 'G', 'C'],[ 'S'],[ 'C', 'd']]

元素在列表中都是str對象。所以基本上這個問題是問我怎麼可以讓python識別一個數字,即使它被轉換爲一個字符串?

+0

如果他們所有的字符串對象然後告訴他們如例如,在整數中加引號。 –

+0

你已經給出的答案,無論是在這裏還是在你之前的問題中,都可以很容易地進行調整,以檢查字符串是否可以被解析爲int。而不是'isinstance'使用不同的功能。查找「python如何測試字符串是數字」還是什麼的。 –

回答

3

您需要嵌套list comprehensionisinstance()

>>> l = [['F', 'G', 'C'], ['S', 3, 7], ['C', 3, 'D']] 
>>> [[item for item in sublist if not isinstance(item, int)] for sublist in l] 
[['F', 'G', 'C'], ['S'], ['C', 'D']] 

如果您需要處理字符串內也位數,str.isdigit()將有助於:

>>> l = [['F', 'G', 'C'], ['S', '3', '7'], ['C', '3', 'D']] 
>>> [[item for item in sublist if not item.isdigit()] for sublist in l] 
[['F', 'G', 'C'], ['S'], ['C', 'D']] 
+0

當我運行這個我得到相同的列表,因爲我開始,數字不會被刪除 –

+0

但如果我將isinstance(item,int)更改爲isinstance(item,str),那麼一切都會被刪除。 –

+0

@abcla你檢查了答案的第二部分嗎?謝謝。 – alecxe

相關問題