I.はじめに:
Python では、リストから複数の辞書情報を削除する方法がいくつかあります。
- リスト内包表記を使用する: 条件判断ステートメントによって削除する必要のない辞書を除外し、新しいリストを形成します。
- 関数を使用する
filter()
: ラムダ式とfilter()
関数を組み合わせて、削除する必要のない辞書を除外し、新しいリストを作成します。 - キーワードを使用する
del
: インデックス作成またはスライス操作を通じて、リスト内の複数の辞書を直接削除します。
2. 使用方法:
2.1. リスト内包表記の使用
my_list = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 35},
{"name": "David", "age": 40}
]
# 删除 age 大于等于 30 的字典
my_list = [item for item in my_list if item["age"] < 30]
print(my_list)
出力は次のとおりです。
[{'name': 'Alice', 'age': 25}]
この例では、リスト内包表記を使用してmy_list
リスト内のすべての辞書を走査し、item["age"] < 30
条件判断ステートメントによって削除する必要のない辞書を除外し、最終的に新しいリストを取得します。
2.2.filter()
機能の使い方
my_list = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 35},
{"name": "David", "age": 40}
]
# 删除 age 大于等于 30 的字典
my_list = list(filter(lambda item: item["age"] < 30, my_list))
print(my_list)
出力は次のとおりです。
[{'name': 'Alice', 'age': 25}]
この例では、ラムダ式と関数をfilter()
組み合わせて使用し、削除する必要のない辞書を除外し、結果をリストに変換します。
2.3.del
キーワードを使用する
my_list = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 35},
{"name": "David", "age": 40}
]
# 删除索引为 1 和 3 的字典
del my_list[1]
del my_list[3-1] # 删除第二个元素后,列表长度减 1
print(my_list)
出力は次のとおりです。
[{'name': 'Alice', 'age': 25}, {'name': 'Charlie', 'age': 35}]
この例では、del
キーワードを使用して、インデックス操作 を通じてそれぞれインデックス付けされた辞書を削除し1
、2
削除されたリストを出力します。要素を削除するとリストの長さが 1 減るため、複数の辞書を削除する場合はインデックスの変更を考慮する必要があることに注意してください。