我试图编写更简单的代码将唯一元素添加到Python列表中。 我有一个包含字典列表的数据集,并尝试迭代字典内的列表。
为什么这不起作用? 它添加了所有项,包括重复项,而不是添加唯一项。
unique_items = []
unique_items = [item for d in data for item in d['items'] if item not in unique_items]
与更长的形式相比,以下是有效的:
unique_items = []
for d in data:
for item in d['items']:
if (item not in unique_items):
unique_items.append(item)
有没有一种使用列表推导式使这个工作正常的方法,或者我只能使用双重循环?我希望保留这个顺序。
这是字典列表:
[{"items":["apple", "banana"]}, {"items":["banana", "strawberry"]}, {"items":["blueberry", "kiwi", "apple"]}]
输出应该为 ["apple", "banana", "strawberry", "blueberry", "kiwi"]
我注意到在另一篇文章中有人提出了类似的问题:Python list comprehension, with unique items,但我想知道是否还有其他方法可以做到这一点,而不是使用OrderedDict或者那是最好的方法。