2016-05-02 8 views
1

私は以下のリストを持っています:[['F'、 'G'、 'C​​']、['S'、3,7]、['C'、3、 'D ']Python、サブリストからすべての数字を削除

しかし、私がしたい:[' F」​​、 'G'、 'C​​']、[ 'S']、[ 'C'、 'D']

要素リストにはすべてのstrオブジェクトがあります。だから基本的にこの質問は、たとえそれが文字列としてキャストされていても、私が数字を認識するようにPythonを得ることができるかどうかを尋ねていますか?

+0

を、次にとしてそれらを表示そのような、intの周りに引用符を入れてください。 –

+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あなたは答えの2番目の部分をチェックしましたか?ありがとう。 – alecxe

関連する問題