我想从嵌套列表中提取唯一数据,请参见下文。我实现了两种方式。第一个效果很好,但第二个失败了。new_data计算时是否为空?我该如何解决它?
data = [
['a', 'b'],
['a', 'c'],
['a', 'b'],
['b', 'a']
]
# working
new_data = []
for d in data:
if d not in new_data:
new_data.append(d)
print(new_data)
# [['a', 'b'], ['a','c'], ['b','a']]
# Failed to extract unique list
new_data = []
new_data = [d for d in data if d not in new_data]
print(new_data)
# [['a', 'b'], ['a', 'c'], ['a', 'b'], ['b', 'a']]
Run Code Online (Sandbox Code Playgroud)
小智 5
你试一试:
new_data = [list(y) for y in set([tuple(x) for x in data])]
Run Code Online (Sandbox Code Playgroud)
您不能在列表的列表上使用,set()因为列表不可散列。您将列表的列表转换为元组的列表。应用set()删除重复项。然后将去重复的元组列表转换回列表列表。
| 归档时间: |
|
| 查看次数: |
5557 次 |
| 最近记录: |