0

私は配列を持っています

a=['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '151 ihi Chun', '151 ihi Chun', '149 st Hg', '149 st Hg', '125 Tatane', '125 Tatane', '174 Sunnygat', '174 Sunnygat', '174 Sunnygat', '126 Nank', '126 Nank', '162 Rass', '162 Rass']

''すべてのオブジェクトを削除したいのですが、できません。

a.remove('')

またwhile a.index(''): a.remove('')

助けにならない..

4

3 に答える 3

6

filter()フィルターとして呼び出しを使用しNoneます (真偽をテストするため、空でないことを確認します)。

a = filter(None, a)

またはリスト内包表記:

a = [e for e in a if e]

他の「false」値を明示的に許可する必要があり、空の文字列のみを除外したい場合は、次を使用します。

a = [e for e in a if e != '']
于 2013-03-13T10:09:14.503 に答える
0

これらのアイテムが実際''に 、つまり空の文字列である場合は、次を使用できます。

a = [x for x in a if x]

空の文字列は、真偽テスト ステートメントで使用すると false と評価されるためです。

于 2013-03-13T10:09:38.177 に答える
-1

試す

for i in a:
   a.remove('')
   a.remove('')

また、最初はすべてが削除されないのに、2回目はすべての空白が削除される理由もわかりません。

于 2013-03-13T10:31:19.610 に答える