如果我创建两个包含这样的列表的列表:
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'])
我希望能够使用列表理解来比较两个列表,并使用第一个元素(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
任何线索将不胜感激。