这是我目前的代码:
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个偶数
任何人都可以帮助我学习如何做这样的事情吗?
答案 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