次のようなリストを含む 2 つのリストを作成すると:
bad_list.append(['blue_widget', 'cracked', '776'])
bad_list.append(['red_widget', 'not_smooth', '545'])
bad_list.append(['yellow_widget', 'spots', '35'])
bad_list.append(['green_widget', 'smells_bad', '10'])
bad_list.append(['purple_widget', 'not_really_purple', '10'])
good_list.append(['blue_widget', 'ok', '776'])
good_list.append(['red_widget', 'ok', '545'])
good_list.append(['green_widget', 'ok', '10'])
リスト内包表記を使用して 2 つのリストを比較し、最初の要素 (x_widget) を比較対象として使用して、適切なリストに存在する不適切なリストのすべての項目を削除できるようにしたいと考えています。上記の例を使用すると、次のようになります。
['yellow_widget', 'spots', '35']
['purple_widget', 'not_really_purple', '10']
リスト内包表記を使用してみましたが、機能しますが、新しいリストは各行を保持しません:
final_list = [x for x in bad_list[0] if x not in good_list[0]]
final_list の for item を使用してコンテンツを印刷すると、次のようになります。
yellow_widget
smells_bad
10
手がかりは大歓迎です。