リストをフィルターしようとしています。リストA(リストのリスト)から抽出します。キーインデックス0に一致する要素と、一連の値を持つ別のリストBを抽出します。
このような
list_a = list(
list(1, ...),
list(5, ...),
list(8, ...),
list(14, ...)
)
list_b = list(5, 8)
return filter(lambda list_a: list_a[0] in list_b, list_a)
返す必要があります:
list(
list(5, ...),
list(8, ...)
)
これどうやってするの?ありがとう!
リスト内包表記を使用します。
_result = [x for x in list_a if x[0] in list_b]
_
パフォーマンスを向上させるには、最初に_list_b
_をセットに変換します。
@kevinがコメントで述べたように、list(5,8)
(疑似コードでない限り)などは無効であり、エラーが発生します。
list()
は1つのアイテムのみを受け入れ、そのアイテムは反復可能/イテレータである必要があります
あなたは実際には非常に近いです。これを行うだけです:
list_a = list(
list(1, ...),
list(5, ...),
list(8, ...),
list(14, ...)
)
# Fix the syntax here
list_b = [5, 8]
return filter(lambda list_a: list_a[0] in list_b, list_a)