Segons la documentació oficial de Python, si fem:
>>> lists = [[]] * 3 >>> lists [[], [], []] >>> lists[0].append(3) >>> lists [[3], [3], [3]]
Ens donarà problemes, perquè a la primera fila el que fem és crear tres punters al mateix lloc. És a dir, que tenim una llista d’un sol element i tres punters que porten a aquest element. Per tant, si modifiquem qualsevol dels elements estem mdificant tots els elements alhora.
Per tant, la solució passa per fer el següent:
>>> lists = [[] for i in range(3)] >>> lists[0].append(3) >>> lists[1].append(5) >>> lists[2].append(7) >>> lists [[3], [5], [7]]
I així ja tenim una llista de llistes buides preparades per a ser omplertes de qualsevol cosa.
Un codi equivalent a això seria fer el següent, tot i que sembla ser una mica menys òptim perquè fas dos passos:
>>> lists = [] >>> for i in range(3): lists.append([])