Was ist der Unterschied zwischen:
some_list1 = []
some_list1.append("something")
y
some_list2 = []
some_list2 += ["something"]
Was ist der Unterschied zwischen:
some_list1 = []
some_list1.append("something")
y
some_list2 = []
some_list2 += ["something"]
Seit heute und Python 3.6 sind die von @Constantine gelieferten Ergebnisse nicht mehr dieselben.
Python 3.6.10 |Anaconda, Inc.| (default, May 8 2020, 02:54:21)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import timeit
>>> timeit.Timer('s.append("something")', 's = []').timeit()
0.0447923709944007
>>> timeit.Timer('s += ["something"]', 's = []').timeit()
0.04335783299757168
Es scheint, dass append
y +=
haben jetzt die gleiche Leistung, während sich die Unterschiede bei der Kompilierung überhaupt nicht verändert haben:
>>> import dis
>>> dis.dis(compile("s = []; s.append('spam')", '', 'exec'))
1 0 BUILD_LIST 0
2 STORE_NAME 0 (s)
4 LOAD_NAME 0 (s)
6 LOAD_ATTR 1 (append)
8 LOAD_CONST 0 ('spam')
10 CALL_FUNCTION 1
12 POP_TOP
14 LOAD_CONST 1 (None)
16 RETURN_VALUE
>>> dis.dis(compile("s = []; s += ['spam']", '', 'exec'))
1 0 BUILD_LIST 0
2 STORE_NAME 0 (s)
4 LOAD_NAME 0 (s)
6 LOAD_CONST 0 ('spam')
8 BUILD_LIST 1
10 INPLACE_ADD
12 STORE_NAME 0 (s)
14 LOAD_CONST 1 (None)
16 RETURN_VALUE
Nehmen wir zunächst ein Beispiel
list1=[1,2,3,4]
list2=list1 (that means they points to same object)
if we do
list1=list1+[5] it will create a new object of list
print(list1) output [1,2,3,4,5]
print(list2) output [1,2,3,4]
but if we append then
list1.append(5) no new object of list created
print(list1) output [1,2,3,4,5]
print(list2) output [1,2,3,4,5]
extend(list) also do the same work as append it just append a list instead of a
single variable
Die Methode append() fügt der bestehenden Liste ein einzelnes Element hinzu
some_list1 = []
some_list1.append("something")
Hier wird also die some_list1 geändert.
Aktualisiert:
Während die Verwendung von + zum Kombinieren der Elemente von Listen (mehr als ein Element) in der bestehenden Liste ähnlich dem extend (wie korrigiert durch Flux ).
some_list2 = []
some_list2 += ["something"]
Hier sind also some_list2 und ["something"] die beiden Listen, die kombiniert werden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.