import random

import math

count = 0

def print2D(list) :

    for row in range(0, 4):
        for col in range(0, 3):
            print(list[row][col], end = ' ')
        print(' ')

list = [[random.randint(0, 5) for x in range(3)] for y in range(4)]

print2D(list)

Ceci est mon code actuel. J'ai besoin de créer une nouvelle fonction qui trouve et compte les nombres pairs dans la liste. Les nombres pairs n'ont pas besoin de s'additionner, j'ai juste besoin de compter combien ils sont. Je suis nouveau sur Python et mes vidéos de cours ne m'aident pas beaucoup. Voici ce que j'ai essayé jusqu'à présent:

1)

count = 0

if list % 2 == 0 :

   count += 1

print(count)

num étant la liste

Et 2) fractionner la liste. La liste est aléatoire, donc je ne savais pas comment diviser la liste

0
Ethan 16 avril 2018 à 08:45

4 réponses

Meilleure réponse

J'espère que c'est plus clair pour vous.

import random
import math
def count(list):
   return len([item for sublst in lst for item in sublst if item%2 == 0])

lst = [[random.randint(0, 5) for x in range(3)] for y in range(4)]
print(count(lst))

Merci

0
CSMaverick 16 avril 2018 à 06:03
import random
import math
def count(list):
  count = 0
  for row in range(0, 4):
    for col in range(0, 3):
        if list[row][col] % 2 == 0 :
            count+= 1
print('Total Even Numbers :',count)
print(list)

list = [[random.randint(0, 5) for x in range(3)] for y in range(4)]
count(list)

Sortie: Nombre pair total: 4

[[3, 5, 0], [5, 1, 4], [4, 2, 3], [3, 1, 1]]

0
Clifton Avil D'Souza 16 avril 2018 à 05:59

C'est une façon d'utiliser la compréhension de liste:

lst = [[random.randint(0, 5) for x in range(3)] for y in range(4)]
print(lst)
print(len([item for sublst in lst for item in sublst if item%2 == 0]))
# [[4, 3, 4], [4, 2, 2], [5, 3, 4], [5, 1, 1]]
# 6        

Nous formons une liste contenant uniquement des nombres pairs de lst. Ensuite, len() compte le nombre d'éléments dans cette liste.

1
Austin 16 avril 2018 à 05:58

Similaire à la réponse de Theausome, mais sans construire de liste:

>>> lst = [[random.randint(0, 5) for x in range(3)] for y in range(4)]
>>> lst
>>> [[0, 4, 5], [1, 2, 2], [0, 0, 0], [0, 4, 5]]
>>> sum(1 for sublst in lst for item in sublst if item%2 == 0)
9

Vous pouvez également écrire if not item%2 au lieu de if item%2 == 0, mais je préfère la version plus explicite.

1
timgeb 16 avril 2018 à 06:15