는 파이썬 3에서 내가 할 수있을 것 같아요 :첫 번째로 나머지 목록을 나누는 Python 적 방법?
first, *rest = l
정확히 내가 원하는 것입니다
,하지만 난 2.6을 사용하고 있습니다. 지금은 다음과 같이하고 있습니다.
first = l[0]
rest = l[1:]
괜찮 으면 좋겠지 만 좀 더 우아한 것이 있는지 궁금합니다.
는 파이썬 3에서 내가 할 수있을 것 같아요 :첫 번째로 나머지 목록을 나누는 Python 적 방법?
first, *rest = l
정확히 내가 원하는 것입니다
,하지만 난 2.6을 사용하고 있습니다. 지금은 다음과 같이하고 있습니다.
first = l[0]
rest = l[1:]
괜찮 으면 좋겠지 만 좀 더 우아한 것이 있는지 궁금합니다.
first, rest = l[0], l[1:]
기본적으로 동일한 것은 제외하고는 oneliner입니다. Tuple assigment rocks.
i = iter(l)
first = next(i) # i.next() in older versions
rest = list(i)
더 나은 점은 'first, last = l [: 1], l [1 :] in 'l'이 비어 있습니다 (그리고 그것은 더 귀엽습니다). –
이것들은 의미 상으로는 동일하지 않다. l [: 1]은리스트이고, l [0]는리스트의 요소이다. –
당신은
first = l.pop(0)
을 할 수있는 다음 l
이 될 것입니다 :
이 조금 더 길고 덜 분명하지만, 일반화 된 모든 반복 가능 객체에 대한 (대신 sliceables로 제한되는)입니다 휴식. 원래 목록을 수정하기 때문에 원하는 내용이 아닐 수도 있습니다.
나는 위의 잘 생각합니다. 당신은 항상'first, rest = l [0], l [1 :]'을 할 수 있습니다. – katrielalex
사실, 위의 경우에는 개선 할 수 없습니다 - http://www.python.org/dev/peps/pep-3132/. – katrielalex
관련 : https://stackoverflow.com/questions/10532473/python-head-and-tail-in-one-line –