如何在列表中计算0模数

时间:2019-05-27 13:54:50

标签: python count modulus

我已经创建了一个列表和该列表的迭代循环。我正在尝试使用模数运算符计算所有偶数。我已经初始化了count变量,并使用了count增量和if语句来捕获嵌套循环中的所有偶数。但是,我得到的只是第一名。 count等于1,是因为不正确地使用了模数,还是item = 10,是因为迭代循环到达了列表的末尾?

我不知道要更改什么,代码结构对我来说都可以。我尝试缩进打印功能。这表明模量捕获了偶数,但计数未将它们求和。

list = [1,2,3,4,5,6,7,8,9,10]
for item in list:
    count = 0
    if (item % 2 == 0):
        count = count + 1
print(count)
print(item)
print(list)

我希望数字5是程序的结果,因为列表中有5个偶数

2 个答案:

答案 0 :(得分:5)

count=0放入for循环之外。现在,您在for循环的每次迭代期间将count重新初始化为0。

此外,请勿将变量命名为built-in函数名:在您的情况下,请勿使用list作为变量名。下面,我以lst为例。

其他少量修改:您可以仅使用count += 1代替count = count + 1。前者是一种简洁的写作方式。此外,在这种情况下,您无需将单个条件放在括号()中。

lst = [1,2,3,4,5,6,7,8,9,10]
count = 0

for item in lst:
    if item % 2 == 0:
        count += 1 # equivalent to count = count + 1
print(count)
print(item)
print(lst)


# 5
# 10
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

答案 1 :(得分:0)

您可以使用Python generatorssum内置函数,而不是通过列表手动进行迭代:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

将为您打印:

  

5

     

use Mojolicious::Lite; get '/' => 'index'; post '/' => sub { my $c = shift; my ($nodes, $edges, $start) = map { $c->param($_) } qw(nodes edges start); system 'script.pl', '--nodes', $nodes, '--edges', $edges, '--start', $start; $c->render(text => 'done'); }; app->start; __DATA__ @@ index.html.ep <html lang="es"> <head> <meta charset="utf-8"/> <title>Graphs</title> </head> <body> <form method="post"> <%= tag div => (id => 'inputs') => begin %> <h1>Grafos dirigidos</h1> %= input_tag 'nodes', placeholder => '#Nodos', id => 'nodes' %= input_tag 'edges', placeholder => '#Edges', id => 'edges' %= input_tag 'start', placeholder => 'Start', id => 'start' %= submit_button 'Generate', id => 'render', onclick => 'renderGraph()' %= tag 'br' %= text_area 'dijkstra', cols => 40, rows => 40, id => 'dijkstra' <% end %> </form>