我不知道如何使用for循环返回表中唯一的python条目数?

我不知道如何使用for循环返回表中唯一的python条目数?,python,Python,例如: help([[1, 2, 2], [1, 1, 2]]) 应该返回2 def help(num): lst = () for n in num: return(len(lst)) 所以我需要表中所有数字的总和 另一个例子: help([[32, 12, 52, 63], [32, 64, 67, 52], [64, 64, 17, 34], [34, 17, 76, 32]]) 报税表:9 def allElementsInTable(tabl

例如:

help([[1, 2, 2], [1, 1, 2]])
应该返回2

def help(num):
    lst = ()
    for n in num:  
        return(len(lst))
所以我需要表中所有数字的总和

另一个例子:

help([[32, 12, 52, 63], [32, 64, 67, 52], [64, 64, 17, 34], [34, 17, 76, 32]]) 
报税表:9

def allElementsInTable(table):
    for row in table:
        for elem in row:
            yield elem
演示:

如果您进行大量的表操作,您可能希望查看
numpy
数组

>>> x = [[1, 2, 2], [1, 1, 2]]
>>> unique_items = lambda n: len(set(n))
>>> map(unique_items, x)
[2, 2]
演示:


如果您进行了大量的表操作,您可能希望查看
numpy
数组。

@garnertb当然是正确的,但出于Python的乐趣:

>>> x = [[1, 2, 2], [1, 1, 2]]
>>> unique_items = lambda n: len(set(n))
>>> map(unique_items, x)
[2, 2]
>>> x = [[1, 2, 2], [1, 1, 2]]
>>> map(len, map(set, x))
[2, 2]
编辑:此页面上的此解决方案和其他解决方案的一个问题是,如果x变长,则会严重扩展。我很想:

>>> import itertools
>>> itertools.imap(len, itertools.imap(set, x))
<itertools.imap object at 0xb7437b8c>
导入itertools >>>itertools.imap(len,itertools.imap(set,x))
@garnertb当然是正确的,但是为了Python的乐趣:

>>> x = [[1, 2, 2], [1, 1, 2]]
>>> map(len, map(set, x))
[2, 2]
编辑:此页面上的此解决方案和其他解决方案的一个问题是,如果x变长,则会严重扩展。我很想:

>>> import itertools
>>> itertools.imap(len, itertools.imap(set, x))
<itertools.imap object at 0xb7437b8c>
导入itertools >>>itertools.imap(len,itertools.imap(set,x)) 试试这个(用于“连接”iterables):

尝试以下方法(用于“连接”iterables):


那么您想要的是每行上唯一值的数量之和,而不是整个表中唯一的值?还是整个表中唯一值的计数?或者具有唯一值的行数?您的示例并不清楚。您的问题或示例需要更清楚一点,否则我们无法理解您的意图。请不要隐藏内置函数
帮助
!整个表中唯一值的总和。下面是另一个示例:help([[32,12,52,63],[32,64,67,52],[64,64,17,34],[34,17,76,32]])返回:9感谢所有帮助EverOne所以您想要每行上唯一值的数量之和,而不是整个表中唯一的?还是整个表中唯一值的计数?或者具有唯一值的行数?您的示例并不清楚。您的问题或示例需要更清楚一点,否则我们无法理解您的意图。请不要隐藏内置函数
帮助
!整个表中唯一值的总和。这里是另一个例子:帮助([[32,12,52,63],[32,64,67,52],[64,64,17,34],[34,17,76,32]])返回:9感谢您提供的所有帮助如果x很大,每个人都不会扩展得很厉害,如果x很大,其他一些解决方案也不会扩展得很厉害,其他一些解决方案也不会