猿问

从列表中就地删除重复项

如何在保留订单并就地更新的同时使列表仅包含唯一项目?

我知道可以使用一套,但它不能保证订购。


Smart猫小萌
浏览 167回答 3
3回答

森林海

使用支持集和 while 循环:def unique(arr):&nbsp; &nbsp; tmp_set = set()&nbsp; &nbsp; i = 0&nbsp; &nbsp; while i < len(arr):&nbsp; &nbsp; &nbsp; &nbsp; if arr[i] in tmp_set:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; del arr[i]&nbsp; &nbsp; &nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tmp_set.add(arr[i])&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; i += 1以上将就地更新数组,并保留元素的顺序。

鸿蒙传说

增强的 CodeSpeed 解决方案。lst = [1, 2, 2, 1, 1]seen = set()length = len(lst) - 1i = 0while i < length:&nbsp; &nbsp; if lst[i] in seen:&nbsp; &nbsp; &nbsp; &nbsp; del lst[i]&nbsp; &nbsp; &nbsp; &nbsp; i -= 1&nbsp; &nbsp; seen.add(lst[i])&nbsp; &nbsp; i += 1&nbsp; &nbsp; length = len(lst)print(lst)
随时随地看视频慕课网APP

相关分类

Python
我要回答