Mon assignation de collège ressemble jusqu'à présent comme ceci:
data = [[1,2,3], [4,5,6], [7,8,9]]
cout = [[]]*3
for i in range(len(data)):
for j in range(len(data[i])):
check = data[i][j]
print(check)
if data[i][j] % 2 == 0:
cout[i].append(data[i][j])
print(cout)
5 Réponses :
Il semble que vous souhaitiez extraire les éléments pairs de votre liste 2D. Il existe de nombreuses façons de faire cette
pour..in code> LOOPS H1> [[2], [4, 6], [8]]
Bonjour bienvenue à Stackoverflow.
Modifiez votre initialisation pour COUT sur P>
data = [[1,2,3], [4,5,6], [7,8,9]]
cout = [[],[],[]]
for i in range(len(data)):
for j in range(len(data[i])):
check = data[i][j]
print("i =", i)
print("j =",j)
print(check)
print(cout)
if data[i][j] % 2 == 0:
cout[i].append(check)
print(cout)
Le problème est dans la ligne Vérifiez les autres réponses pour une manière plus propre d'atteindre ce que vous essayez d'atteindre, cependant. p> cout = [[]] * 3 code>. Cela ne crée pas trois listes distinctes, mais 3 objets référencés dans la même liste. Une façon de résoudre ce problème consiste à écrire cout = [[], [], []] code> ou cout = [[] pour _ dans la plage (3)] code>. / p>
Merci pour cette information, je viens d'apprendre Python et à peu près innocent dans cette langue. Lorsque j'ai cherché à créer une liste imbriquée vide, j'ai trouvé qu'il était écrit comme ça. Donc, donner à ces informations vraiment m'a aidé. Merci
Un autre Onliner:
Pour filtrer les nombres inégaux des sublistes dans une liste Vous pouvez utiliser ListCompets imbriquées:
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] [[i for i in l if not i % 2] for l in data] # [[2], [4, 6], [8]]