Python 2维表和不同的条目

时间:2013-12-02 04:57:36

标签: python arrays

我正在创建一个名为different()的函数。它需要将二维表作为输入并返回表中不同条目的数量。我不确定如何启动它,我真的很感激一些建议。使用时,它应该在shell中看起来像这样:

t = [[1,0,1], [0,1,0]]
different(t)
>>2

这是我到目前为止所做的:

def different()-> int
''' takes a two-dimensional table and returns number of distinct entries'''
t = []
while 
#use set method?

3 个答案:

答案 0 :(得分:0)

def different(t):
    return len(set(tuple(item) for item in t))

答案 1 :(得分:0)

我认为有两种可能的解释

>>> set(j for i in t for j in i)
set([0, 1])

>>> set(tuple(i) for i in t)   # equivalent to set(map(tuple, t))
set([(0, 1, 0), (1, 0, 1)])

无论哪种方式,不同的都应该返回len

set
def different(t):
    return len(set(...))

如果您喜欢itertools,可以执行以下操作

from itertools import chain
def different(t):
    return len(set(chain.from_iterable(t)))

答案 2 :(得分:0)

从python的基本知识可以解决上述问题

t = [[1,0,1], [0,1,0], [1,2,3], [1,0,1]]
a = []
for i in t:
    if i not in a:
        a.append(i)
print len(a)

您创建了一个新的列表名称'a',并且您已在列表中插入了所有这些唯一的元素。你可以获得新列表的长度a。