在Python 3中计算和运行总计

时间:2017-09-30 21:19:56

标签: python

这是我目前的代码:

def even(x):

   if x % 2 == 0: 
       even = True
   else:
       even = False   

   if even is True:
       print("Even")

   if even is False:
       print("Odd")

N=[1,3,2,4]

for x in N: 
   even(x)

因为它是函数接受每个输入并打印它是偶数还是奇数,非常基本。

我给自己编写了一个函数/脚本的目标,该函数/脚本将获取一个数字列表并吐出类似于:“有15个偶数和8个奇数。”但是,我无法理解如何计算我的变量“偶数”为真或假的运行总数。此外,我不明白如何在函数外使用该变量。到目前为止,我最好的尝试会产生如下输出:

  

有1个奇数

     

有1个奇数

     

有1个偶数

     

有1个偶数

等......对于列表N中的任何内容。

而我想要的是:

  

有2个奇数

     

有2个偶数

任何人都可以帮助我学习如何做这样的事情吗?

2 个答案:

答案 0 :(得分:1)

您可以使用Counter

from collections import Counter
c = Counter(x % 2 == 0 for x in lst)
print "There are %d even numbers and %d odd numbers" % (c[True], c[False])

答案 1 :(得分:0)

您可以使用sum()map()

def even(x):
    return (x % 2 == 0)   

N = [1,3,2,4,6,8]

n_even = sum(map(even, N))
print(n_even)
# 4

现在even如果数字是偶数则返回True(1),否则返回False(0)。现在简单总结一下,你的时间就是偶数 此外,您可能希望将n_odd定义为

n_odd = len(N) - n_even