Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonですべての要素がNoneとしてリストからタプルを削除する


「None」要素が存在するタプルのリストからタプルを削除する必要がある場合は、リスト内包表記を使用できます。

以下は同じのデモンストレーションです-

my_list = [(2, None, 12), (None, None, None), (23, 64), (121, 13), (None, ), (None, 45, 6)]

print("The list is : ")
print(my_list)

my_result = [sub for sub in my_list if not all(elem == None for elem in sub)]

print("The None tuples have been removed, the result is : " )
print(my_result)

出力

The list is :
[(2, None, 12), (None, None, None), (23, 64), (121, 13), (None,), (None, 45, 6)]
The None tuples have been removed, the result is :
[(2, None, 12), (23, 64), (121, 13), (None, 45, 6)]

説明

  • タプルのリストが定義され、コンソールに表示されます。

  • リスト内包表記は、リストを反復処理するために使用されます。

  • 「すべて」の条件は、「なし」の要素があるかどうかを確認するために使用されます。

  • 「なし」の要素が存在する場合、それらは除外されます。

  • 残りのデータは変数に割り当てられます。

  • この変数は出力として表示されます。


  1. Pythonでリスト内の同じ要素を削除するにはどうすればよいですか?

    ブロックの外側のreturnステートメントを削除するだけです。それが動作します。また、最後の印刷ステートメントには、remaove_newではなくremove_sameが必要です。 def remove_same(L1, L2):     L1_copy = L1[:]     for e in L1_copy:         if e in L2:              L1.remove(e)     return

  2. Pythonでインデックスによってリストから要素を削除するにはどうすればよいですか?

    リスト内のインデックスで要素を削除するには、2つのオプションがあります。 delステートメントを使用し、pop()メソッドを使用します。 delステートメントには、削除する要素のインデックスが必要です。 >>> L1=[11,22,33,44,55,66,77] >>> del L1[2] >>> L1 [11, 22, 44, 55, 66, 77] 組み込みリストクラスのpop()メソッドには、引数としてインデックスが必要です。このメソッドは、削除された要素を返し、リストの内容を1要素減らします。 >>> L1=[