Python:计算列表中的数字

时间:2014-02-10 04:46:18

标签: python python-2.7

我的输出看起来像

100010
101010
101001
None
None
None

对于程序的下一部分,我需要计算数字序列的数量。例如,它应该是3.我该怎么做。该程序的第一部分基本上生成随机二进制序列(代表寄生虫基因组)并且没有一个意味着宿主没有寄生虫。这些是随机生成的。 (每次运行程序时可能会有所不同)。我只需要计算出有多少寄生虫。这应该在python中完成。

4 个答案:

答案 0 :(得分:1)

使用generator expressionsum

>>> lst = [1000010, 101010, 101001, None, None, None]
>>> sum(x != None for x in lst)
3

替代方案:从总数中减去None的数量:

>>> len(lst) - lst.count(None)
3

答案 1 :(得分:1)

input = '100010 101010 101001 None None None'
import string
wordsList = string.split(input)
i=0;
for word in wordsList:
    if word != 'None' :
        i= i+1
print i

'i'给你结果3

答案 2 :(得分:0)

In [2]: L = [100010, 101010, 101001, None, None, None]

In [3]: sum(1 for _ in itertools.takewhile(lambda n: n is not None, L))
Out[3]: 3

答案 3 :(得分:0)

如果您将所有输出收集到如下列表中:

    collection = ['100010', '101010', '101001', None, None, None]

您可以使用列表理解创建新列表:

    parasites = [item for item in collection if item is not None]

将为您提供列表['100010', '101010', '101001']。然后你可以找到这个列表的长度来给你寄生虫的数量:

    len(parasites)

在这种情况下为您提供3