繁体   English   中英

Python 2维表和不同的条目

[英]Python 2 dimensional table and distinct entries

我正在做一个叫做different()的函数。 它需要一个二维表作为输入,并返回表中不同条目的数量。 我不确定如何启动它,我真的很感谢一些建议。 使用时,它在外壳中应如下所示:

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?
def different(t):
    return len(set(tuple(item) for item in t))

我认为有两种可能的解释

>>> 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)])

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

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

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

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

从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。

暂无
暂无

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

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