Python에서 한 줄에 여러 항목을 추가하는 방법


91

나는 가지고있다:

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()진술을 몇 가지 진술로 만들고 싶었다 .


분명히 다른 결과를 얻는다면 동일하지 않습니다.
JJJ

잘못된 구문입니다.
TerryA 2013 년

4
사용중인 같은 개체를 가정하면리스트로 의미, 코드가 유효 파이썬하지 []않고 (). 실제 작업 코드를 게시하십시오.
BrenBarn

답변:


227

아니요 list.extend(). 전체 시퀀스를 추가하는 방법은 입니다.

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

'삽입'은 '추가'로 작동하지만 목록의 시작 부분에 추가됩니다. 목록의 시작 부분에 여러 값을 추가하는 기능이 있습니까?
참새

@sparrow : 아니요. 대신 슬라이스 할당.
Ignacio Vazquez-Abrams

두 번째 입력이 목록이 될 필요가 있습니까? 아니면 쉼표로 구분 된 각 요소 일 수 있습니까?
Charlie Parker

@CharlieParker : 인수 list.extend()는 반복 가능해야합니다.
Ignacio Vazquez-Abrams

5

아니.

우선, append함수이므로 append[i+1:i+4]시퀀스가 아닌 것의 조각을 얻으려고하기 때문에 작성할 수 없습니다 . (당신은 둘 중 하나의 요소를 얻을 수 없습니다 : append[i+1]같은 이유로 잘못된 것입니다.) 함수를 호출 할 때, 인수는 괄호 안에 들어갑니다 .() . .

두 번째로, 당신이하려는 것은 "시퀀스를 가져 와서 원래 순서대로 다른 시퀀스의 끝에 모든 요소를 ​​넣는 것"입니다. 철자가 extend있습니다. append"이 일을하고, 목록의 마지막에 그것을 넣어 하나의 항목으로 , 그것은 또한 목록 경우에도 ". (목록은 일종의 시퀀스라는 것을 기억하십시오.)

그러나 그런 다음 i+1:i+4대괄호 (시퀀스에서 슬라이스를 가져 오기 위해)와 중괄호 ( dict객체 를 만들기 위해) 안에 만 나타나는 특수 구조라는 것을 알아야합니다 . 함수에 전달할 수 없습니다. 그래서 당신은 그렇게 할 수 없습니다 extend. 이러한 값의 시퀀스를 만들어야하며이를 수행하는 자연스러운 방법은 range함수를 사용하는 것입니다.



2

이것을 사용하십시오 :

#Inputs
L1 = [1, 2]
L2 = [3,4,5]

#Code
L1+L2

#Output
[1, 2, 3, 4, 5]

(+) 연산자를 사용하면 한 줄의 코드에서 여러 추가 및 확장 연산자를 건너 뛸 수 있으며 이는 L1 + L2 + L3 + L4 ....... 등의 목록 중 두 개 이상에 대해 유효합니다.

행복한 학습 ... :)


1
mylist = [1,2,3]

def multiple_appends(listname, *element):
    listname.extend(element)

multiple_appends(mylist, 4, 5, "string", False)
print(mylist)

산출:

[1, 2, 3, 4, 5, 'string', False]

1

for 루프를 사용하십시오. 이렇게 :

for x in [1,2,7,8,9,10,13,14,19,20,21,22]:
    new_list.append(my_list[i + x])
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.