微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算列表中的不同元素 (Python)

如何解决计算列表中的不同元素 (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 举报,一经查实,本站将立刻删除。