[python] Python의 단일 요소 목록에서 요소 만 가져 오나요?

Python 목록이 항상 단일 항목을 포함하는 것으로 알려진 경우 다음과 다른 방법으로 액세스 할 수있는 방법이 있습니까?

mylist[0]

당신은 ‘왜 당신은 원하십니까?’라고 물을 수 있습니다. 호기심 만. 파이썬에서 모든 것을 할 수있는 다른 방법이있는 것 같습니다 .



답변

시퀀스 풀기 :

singleitem, = mylist
# Identical in behavior (byte code produced is the same),
# but arguably more readable since a lone trailing comma could be missed:
[singleitem] = mylist

반복기 프로토콜의 명시 적 사용 :

singleitem = next(iter(mylist))

파괴적인 팝 :

singleitem = mylist.pop()

음수 색인 :

singleitem = mylist[-1]

단일 반복을 통해 설정 for합니다 (루프가 종료 될 때 루프 변수가 마지막 값으로 계속 사용 가능하기 때문에) :

for singleitem in mylist: break

다른 많은 것 (위의 비트를 결합하거나 변경하거나 암시 적 반복에 의존)하지만 아이디어를 얻을 수 있습니다.


답변

more_itertools
라이브러리에 iterable에서 하나의 항목을 반환하는 도구가 있다고 추가하겠습니다 .

from more_itertools import one


iterable = ["foo"]
one(iterable)
# "foo"

또한 more_itertools.oneiterable이 비어 있거나 둘 이상의 항목이있는 경우 오류를 발생시킵니다.

iterable = []
one(iterable)
# ValueError: not enough values to unpack (expected 1, got 0)

iterable = ["foo", "bar"]
one(iterable)
# ValueError: too many values to unpack (expected 1)

more_itertools 타사 패키지입니다. > pip install more-itertools


답변