2012-01-04 10 views

Odpowiedz

9

Jest to bardzo proste dzięki temu możesz dodawanie i/lub wielokrotnie wymienia:

L += [4] * 10 

Oto dowód:

>>> L = [0,1,2,3] 
>>> L += [4] * 10 
>>> L 
[0, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] 
+3

@ user1123950, jeśli zamierzasz używać tego kodu do czegoś innego niż tylko ints lub floats (np. Listy, dyktury lub własne klasy), jest coś ** bardzo ważne **, które musisz znać: ' * 'operator wil utworzy listę ** tego samego obiektu ** powtórzoną n razy, więc jeśli zrobisz' L + = [MyClass()] * 10' wszystkie te elementy będą odwoływać się do tego samego obiektu, więc jeśli zmodyfikujesz jeden z one, będziesz modyfikował je wszystkie. – juliomalegria

+0

@ julio.alegria: Całkowicie się z tym zgadzam. – Tadeck

2
L.extend([4] * 10) 

L.extend([some_mutable_object for x in range(10)]) 
+1

Druga linia nie działa dla 'some_mutable_object', tylko dla' some_expression_that_returns_or_creates_a_mutable_object() '. W przeciwnym razie otrzymasz 10 referencji do tego samego obiektu. – Ben

+0

Przepraszamy za rozmowę rewizyjną. Przypadkowo opublikowałem ten komentarz, zanim zamierzałem, więc wróciłem i skończyłem, ale już wtedy odpowiedziałeś na wstępną wersję. – Ben

Powiązane problemy