Il s'agit plus d'un avertissement que d'une réponse.
Ayant vu dans les autres réponses my_list = [None] * 10
Je me suis laissé tenter et j'ai créé un tableau comme celui-ci speakers = [['','']] * 10
et a fini par le regretter immensément, car les résultats de la list
ne s'est pas comportée comme je le pensais.
J'ai eu recours à :
speakers = []
for i in range(10):
speakers.append(['',''])
En tant que [['','']] * 10
semble créer une list
où les éléments suivants sont une copie du premier élément.
par exemple :
>>> n=[['','']]*10
>>> n
[['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', '']]
>>> n[0][0] = "abc"
>>> n
[['abc', ''], ['abc', ''], ['abc', ''], ['abc', ''], ['abc', ''], ['abc', ''], ['abc', ''], ['abc', ''], ['abc', ''], ['abc', '']]
>>> n[0][1] = "True"
>>> n
[['abc', 'True'], ['abc', 'True'], ['abc', 'True'], ['abc', 'True'], ['abc', 'True'], ['abc', 'True'], ['abc', 'True'], ['abc', 'True'], ['abc', 'True'], ['abc', 'True']]
Considérant qu'avec le .append
option :
>>> n=[]
>>> for i in range(10):
... n.append(['',''])
...
>>> n
[['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', '']]
>>> n[0][0] = "abc"
>>> n
[['abc', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', '']]
>>> n[0][1] = "True"
>>> n
[['abc', 'True'], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', '']]
Je suis sûr que la réponse acceptée de ninjagecko tente de mentionner ce point, malheureusement j'étais trop épais pour comprendre.
En conclusion, prenez soin de vous !