Do niezmiennych typów danych:
l = [0] * 100
# [0, 0, 0, 0, 0, ...]
l = ['foo'] * 100
# ['foo', 'foo', 'foo', 'foo', ...]
Dla wartości, które są przechowywane przez odniesienie i może chcesz zmodyfikować później (jak podlist lub dyktuje):
l = [{} for x in range(100)]
(Powód, dla którego pierwsza metoda to tylko dobry pomysł na wartości stałe, lik e lub ciągi, ponieważ tylko płytka kopia jest używana podczas używania składni <list>*<number>
, a zatem jeśli zrobiłeś coś takiego jak [{}]*100
, skończyłbyś z 100 odniesieniami do tego samego słownika - więc zmiana jednego z nich zmieniłaby je wszystkie . Ponieważ ints i string są niezmienne, nie stanowi to dla nich problemu.)
Jeśli chcesz dodać do istniejącej listy, możesz użyć metody extend()
tej listy (w połączeniu z generowaniem listy rzeczy do dodania za pomocą powyższych technik):
a = [1,2,3]
b = [4,5,6]
a.extend(b)
# a is now [1,2,3,4,5,6]
Skończyło się na 'l.extend ([x] * 100)' ponieważ najlepiej pasuje do mojej sytuacji. Bursztyn dostaje odpowiedź jako najbardziej wszechstronną. Dzięki! – Toji
Upewnij się, że rozumiesz podstawową semantykę Pythona, zanim użyjesz tego do niczego nietrywialnego. X-y dołączone do l są wszystkie takie same x, więc mutowanie jednego z nich wpływa na nich wszystkich (wszystkie z nich, o których mowa 100 razy). –
Dla wyjaśnienia: używam go dla liczb całkowitych, więc moje użycie jest bezpieczne. – Toji