Path: csiph.com!feeder.erje.net!1.eu.feeder.erje.net!proxad.net!feeder1-2.proxad.net!fdn.fr!news.ortolo.eu!news.izac.org!reader From: Benoit Izac Newsgroups: fr.comp.lang.python Subject: Re: remplir un tableau Date: Tue, 30 Jan 2018 07:19:13 +0100 Message-ID: <87efm7vpge.fsf@izac.org> References: <5a6fa2b6$0$7180$426a74cc@news.free.fr> Reply-To: benoit.izac@free.fr Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Injection-Info: keg.izac.org; logging-data="11393"; mail-complaints-to="usenet@izac.org" Xref: csiph.com fr.comp.lang.python:3028 Bonjour, Le 29/01/2018 à 23:39, Fabrice a écrit dans le message <5a6fa2b6$0$7180$426a74cc@news.free.fr> : > je voulais remplir un tableau avec des nombres aléatoires mais j'ai 50 > fois la même ligne ! > > j'ai fait : > > import matplotlib.pyplot as plt > import random > > image = [[0]*50]*50 Le problème est là. Tu crées une liste contenant 50 fois une référence vers la même liste qui contient 50 zéros : >>> image = [[0]*50]*50 >>> id(image[0]) 140001800012424 >>> id(image[1]) 140001800012424 Alors qu'en faisant comme cela : >>> image = [[0]*50 for _ in range(50)] >>> id(image[0]) 140001800012936 >>> id(image[1]) 140001800012744 -- Benoit Izac