如何获得只有唯一数字的列表? (Python)
How to get a list with only unique numbers? (Python)
我想编写一个程序来检查重复值并将其删除。
所以例如我想从这个:
list = [2,6,8,2,9,8,8,5,2,2]
只得到这个:
uniques = [6,9,5]
我似乎找不到一个好方法来比较每个项目,看看它们是否相等,然后将它们删除。任何帮助将不胜感激!
list = [2,6,8,2,9,8,8,5,2,2]
uniques = []
for i in range(len(list)):
if list.count(list[i])==1:
uniques.append(list[i])
假设您想要一个在列表中只出现一次的值列表,这应该可行。我使用哈希图将值的计数存储在列表中,然后将计数为 1 的键添加到 unqiue
.
l = [2,6,8,2,9,8,8,5,2,2]
unique = []
count = {}
for i in l:
if count.get(i) is None:
count[i] = 1
else:
count[i]+=1
for i in count.keys():
if count[i] == 1:
unique.append(i)
print(unique)
输出
[6, 9, 5]
list = [2,6,8,2,9,8,8,5,2,2]
uniques = []
for i in list:
if i not in uniques:
uniques.append(i)
>>> from collections import Counter
>>> lst = [2,6,8,2,9,8,8,5,2,2]
>>> c = Counter(lst)
>>> [x for x in c if c[x] == 1]
[6, 9, 5]
除了对每个元素使用 count
或 in
之外,这应该是 O(n) 而不是 O(n²)。
如果您也想保留元素的顺序,请遵循以下最佳方法:
uniques = list(dict.fromkeys(list))
print(uniques)
我想编写一个程序来检查重复值并将其删除。 所以例如我想从这个:
list = [2,6,8,2,9,8,8,5,2,2]
只得到这个:
uniques = [6,9,5]
我似乎找不到一个好方法来比较每个项目,看看它们是否相等,然后将它们删除。任何帮助将不胜感激!
list = [2,6,8,2,9,8,8,5,2,2]
uniques = []
for i in range(len(list)):
if list.count(list[i])==1:
uniques.append(list[i])
假设您想要一个在列表中只出现一次的值列表,这应该可行。我使用哈希图将值的计数存储在列表中,然后将计数为 1 的键添加到 unqiue
.
l = [2,6,8,2,9,8,8,5,2,2]
unique = []
count = {}
for i in l:
if count.get(i) is None:
count[i] = 1
else:
count[i]+=1
for i in count.keys():
if count[i] == 1:
unique.append(i)
print(unique)
输出
[6, 9, 5]
list = [2,6,8,2,9,8,8,5,2,2]
uniques = []
for i in list:
if i not in uniques:
uniques.append(i)
>>> from collections import Counter
>>> lst = [2,6,8,2,9,8,8,5,2,2]
>>> c = Counter(lst)
>>> [x for x in c if c[x] == 1]
[6, 9, 5]
除了对每个元素使用 count
或 in
之外,这应该是 O(n) 而不是 O(n²)。
如果您也想保留元素的顺序,请遵循以下最佳方法:
uniques = list(dict.fromkeys(list))
print(uniques)