如何解决计算列表中的不同元素 (Python)
我正在尝试实现一个用于练习目的的函数,以便仅计算列表中的不同元素。 我正在实施的代码是:
def distinct_elements(a):
a.sort()
b = []
i = 0
for i in range(0,len(a)-1):
if a[i] == a[i+1]:
i+1
else:
b.append(a[i+1])
i+1
return b
实际上,它有效,我得到了列表中的不同元素。事情是关于主数组 a
中的第一个元素,它在循环后不存在于数组 b
中。
结果:
a = get_random_array(10)
print("Orginal array",sorted(a))
print("result",distinct(a))
Orginal array [3,15,24,25,29,37,38,41,42,49]
result [15,49]
如您所见,a
上的第一个元素丢失了。
为了获得正确的结果,我应该更改代码中的哪些内容?
另外,有没有办法不以算法到位的方式创建新列表?还有,有没有可能让它更快?
解决方法
Numpy 有一个内置函数:
import numpy as np
np.unique(yourlist)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。