2016-05-02 34 views
0

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

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

我怎麼會去這樣做呢?

+0

@Bahrom我如何格式化列表? –

+1

您的清單中是否有3個子清單或3個字符串? – Bahrom

+0

有3個子列表 –

回答

0

使用列表理解:

my_list = [['F', 'G', 'C'], ['S', 3, 7], ['C', 3, 'D']] 
no_numbers = [[item for item in sub_list if not isinstance(item, int)] 
       for sub_list in my_list] 
print(no_numbers) 

此打印:

[['F', 'G', 'C'], ['S'], ['C', 'D']] 
+1

或'if isinstance(item,basestring)' –

+0

@AlexHall是正確的,我只是想跟隨問題的邏輯,認爲'not isinstance int'會更好地去除數字(整數,我假設,在這種情況下)。 – Bahrom

+1

我同意,只是指出OP的不同想法。 –

-1
mylist = [['F', 'G', 'C'], ['S', 3, 7], ['C', 3, 'D']] 
newlist = [[x for x in mysublist if not isinstance(x, int)] for mysublist in mylist] 
print newlist 

有多種方式來達致這。上面的例子是使用列表理解。

+0

如果我有子列表呢?像在問題@sudhishkr –

+0

看起來像問題被修改。 @abcla - 在給出'-1'之前檢查一下:) – sudhishkr

0

這是Python 3中的代碼:

mylist = [['F','G','C'], ['S',3,7], ['C',3,'D']] 
rslist = [[y for y in x if not isinstance(y, int)] for x in mylist ] 
print (rslist)