Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算列表列表中的不同元素?_Python_List_Count - Fatal编程技术网

Python 如何计算列表列表中的不同元素?

Python 如何计算列表列表中的不同元素?,python,list,count,Python,List,Count,我想数一数唯一列表的数量,在一个列表列表中。 比如说, >>>list1 = [[1,2,3],[1,2,3],[1,2,2],[1,2,2]] >>>how_many_different_lists(list1) >>>2 #They are [1,2,3] and [1,2,2] 如何使“多少个不同”列表发挥作用 以下是工作代码: from copy import deepcopy def how_much_dif_l(arg):

我想数一数唯一列表的数量,在一个列表列表中。 比如说,

>>>list1 = [[1,2,3],[1,2,3],[1,2,2],[1,2,2]]

>>>how_many_different_lists(list1)

>>>2 #They are [1,2,3] and [1,2,2]
如何使“多少个不同”列表发挥作用

以下是工作代码:

from copy import deepcopy

def how_much_dif_l(arg):
    arg_list=deepcopy(arg)
    i=0
    length=len(arg_list)
    while i<length:
        a = arg_list[i]
        if arg_list.count(a)>1:
            length-=1
            arg_list.remove(a)
        else: 
            i+=1


    return len(arg_list)

list1= [[1,2,3],[1,2,3],[1,2,2],[1,2,2]]
print(how_much_dif_l(list1))
从复制导入deepcopy
定义多少dif(参数):
arg_list=deepcopy(arg)
i=0
长度=长度(参数列表)
而i1:
长度-=1
参数列表。删除(a)
其他:
i+=1
返回长度(参数列表)
列表1=[[1,2,3],[1,2,3],[1,2,2],[1,2,2]]
打印(有多少差异(列表1))
上述代码输出

[[1, 2, 2], [1, 2, 3]]
你也可以这样做

l = []
for i in lis:
    if i not in l:
        l.append(i)


如果您只需要知道有多少不同的列表,您可以简单地执行以下操作:

def how_many_different_lists(lists):
    s = set(str(list_) for list_ in lists)
    return len(s)
您可以按如下方式调用此函数:

>>> list1 = [[1,2,3],[1,2,3],[1,2,2],[1,2,2]]
>>> how_many_different_lists(list1)
2

这回答了你的问题吗@加甘特谢谢你!我很难用英语搜索。。。所以我可能错过了结果:)这不应该被接受。您正在更改原始列表,从中删除项目。这不是最好的主意。@revliscano如果需要,可以使用deepcopy()@revliscano completed,警官!顺便说一下,清理if条件周围的括号和
i+=1
后面的分号也是个好主意:-)另一件事:我用另一组数据测试它,例如:
[[1,2,3],[1,2,3],[1,2,2],[1,2,2],[2,2],[1,2,2],[2,5],[1,2,3],[2,5]]
并抛出一个
索引器
,这是因为
长度-=1
放在了错误的位置。
def how_many_different_lists(lists):
    s = set(str(list_) for list_ in lists)
    return len(s)
>>> list1 = [[1,2,3],[1,2,3],[1,2,2],[1,2,2]]
>>> how_many_different_lists(list1)
2