Mam:
count = 0
i = 0
while count < len(mylist):
if mylist[i + 1] == mylist[i + 13] and mylist[i + 2] == mylist[i + 14]:
print mylist[i + 1], mylist[i + 2]
newlist.append(mylist[i + 1])
newlist.append(mylist[i + 2])
newlist.append(mylist[i + 7])
newlist.append(mylist[i + 8])
newlist.append(mylist[i + 9])
newlist.append(mylist[i + 10])
newlist.append(mylist[i + 13])
newlist.append(mylist[i + 14])
newlist.append(mylist[i + 19])
newlist.append(mylist[i + 20])
newlist.append(mylist[i + 21])
newlist.append(mylist[i + 22])
count = count + 1
i = i + 12
Chciałem złożyć newlist.append()
oświadczenia w kilka stwierdzeń.
[]
zamiast()
. Prześlij prawdziwy działający kod.Odpowiedzi:
Nie. Metoda dołączania całej sekwencji to
list.extend()
.>>> L = [1, 2] >>> L.extend((3, 4, 5)) >>> L [1, 2, 3, 4, 5]
źródło
list.extend()
musi być iterowalny.Nie.
Po pierwsze,
append
jest to funkcja, więc nie możesz pisać,append[i+1:i+4]
ponieważ próbujesz uzyskać wycinek rzeczy, która nie jest sekwencją. (Nie można uzyskać element z niego, albo:append[i+1]
jest źle z tego samego powodu). Po wywołaniu funkcji, argument idzie w nawiasach , czyli okrągłe z nich:()
.Po drugie, próbujesz zrobić „weź sekwencję i umieść każdy jej element na końcu tej innej sekwencji, w oryginalnej kolejności”. To jest zapisane
extend
.append
to „weź tę rzecz i umieść ją na końcu listy, jako pojedynczą pozycję , nawet jeśli jest to również lista ”. (Przypomnij sobie, że lista jest rodzajem sekwencji).Ale wtedy musisz być świadomy, że
i+1:i+4
jest to specjalna konstrukcja, która pojawia się tylko w nawiasach kwadratowych (aby uzyskać wycinek z sekwencji) i nawiasach (aby utworzyćdict
obiekt). Nie możesz przekazać tego funkcji. Więc nie możeszextend
z tym. Musisz utworzyć sekwencję tych wartości, a naturalnym sposobem jest użycierange
funkcji.źródło
Możesz również:
newlist += mylist[i:i+22]
źródło
Użyj tego :
#Inputs L1 = [1, 2] L2 = [3,4,5] #Code L1+L2 #Output [1, 2, 3, 4, 5]
Używając operatora (+), możesz pominąć wiele operatorów dołączania i rozszerzania w jednej linii kodu i jest to ważne dla więcej niż dwóch list przez L1 + L2 + L3 + L4 ....... itd.
Miłej nauki ... :)
źródło
mylist = [1,2,3] def multiple_appends(listname, *element): listname.extend(element) multiple_appends(mylist, 4, 5, "string", False) print(mylist)
WYNIK:
[1, 2, 3, 4, 5, 'string', False]
źródło
używać do pętli. lubię to:
for x in [1,2,7,8,9,10,13,14,19,20,21,22]: new_list.append(my_list[i + x])
źródło