2013-05-18 2 views
61

у меня есть:Как добавить несколько элементов в одной строке в Python

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 

Я хотел сделать newlist.append() заявления в несколько заявлений.

+0

Ну, очевидно, это не то же самое, если вы получите разные результаты. – JJJ

+0

Это недопустимый синтаксис. – TerryA

+4

Предполагая, что ваши объекты предназначены для списков, ваш код недействителен Python, поскольку вы используете '[]' вместо '()'. Пожалуйста, напишите реальный рабочий код. – BrenBarn

ответ

151

№. Метод для добавления целой последовательности: list.extend().

>>> L = [1, 2] 
>>> L.extend((3, 4, 5)) 
>>> L 
[1, 2, 3, 4, 5] 
+0

«вставить» функции как «добавить», но добавляет к началу списка. Есть ли функция добавления нескольких значений в начало списка? – sparrow

+0

@sparrow: Нет. Вместо этого назначьте список. –

4

No.

Во-первых, append является функцией, поэтому вы не можете писать append[i+1:i+4], потому что вы пытаетесь получить кусочек вещь, которая не является последовательностью. (Вы не можете получить его элемент: append[i+1] ошибочно по той же причине.) Когда вы вызываете функцию, аргумент идет в круглых скобках, то есть круглых: ().

Во-вторых, что вы пытаетесь сделать, это «взять последовательность и поместить в нее все элементы в конце этой другой последовательности в исходном порядке». Это написано extend. append «возьмите эту штуку и положите ее в конец списка, как отдельный элемент, , даже если это также список». (Напомним, что список - это своего рода последовательность.)

Но тогда вам нужно знать, что i+1:i+4 - это специальная конструкция, которая появляется только внутри квадратных скобок (чтобы получить фрагмент из последовательности) и фигурных скобок (для создания a dict объект). Вы не можете передать его функции. Таким образом, вы не можете использовать extend. Вам нужно сделать последовательность этих значений, и естественный способ сделать это - с помощью функции range.

1

Вы можете также:

newlist += mylist[i:i+22]