繁体   English   中英

此代码如何返回列表的唯一值?

[英]how could this code Return unique values of a list?

def uniq(list):
    """ Returns unique values of a list """
    u_list = []
    for item in list:
        if item not in u_list:
            u_list.append(item)
    return u_list

A/空列表

B/list 有一个元素(任何类型)

具有 2 个不同元素(相同类型)的 C/list

具有两次相同元素(相同类型)的 D/list

具有超过 2 次相同元素(相同类型)的 E/list

具有多种类型(整数、字符串等)的 F/list

G/不是列表参数(例如:将字典传递给方法)

uniq = lambda x: list(set(x))定义了一个 function ,它应该满足您的大部分需求,除了您在G中指定的内容。 如果对输入类型没有任何限制,那么就很难理解你在问什么。 这实际上适用于字典,因为 set 构造函数会将自身限制为字典的键。 更一般地说,它将简单地迭代传递给它的任何 object 并将迭代元素转换为一个集合。 但我建议您努力更好地定义G中的含义,否则您可能最终会出现意外行为。

至于它是如何工作的,这很简单: set(x)将您的列表转换为一个集合,它会自动从中删除所有重复项,然后list(set(x))将其简单地转换回一个列表。

最后,我强烈建议不要将 function 参数list命名为内置 class,并且不应将其作为变量名覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM