함수에 의해 반환 된 x- 튜플의 특정 요소를 선택하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1502470

문제

나는 파이썬에 대한 초보자입니다. 기능을 고려하십시오 str.partition() 3 튜플을 반환합니다. 이 튜플의 요소 0과 2에만 관심이 있다면 그러한 튜플에서 특정 요소 만 선택하는 가장 좋은 방법은 무엇입니까?

나는 현재 다음 중 하나를 할 수 있습니다.

# Introduces "part1" variable, which is useless
(part0, part1, part2) = str.partition(' ')

또는:

# Multiple calls and statements, again redundancy
part0 = str.partition(' ')[0]
part2 = str.partition(' ')[2]

할 수 있기를 원합니다 무엇 이렇게하지만 할 수는 없습니다.

(part0, , part2) = str.partition(' ')
# Or:
(part0, part2)   = str.partition(' ')[0, 2]
도움이 되었습니까?

해결책

밑줄은 종종 필요하지 않은 물건의 이름으로 사용되므로 이와 같은 것이 작동합니다.

part0, _, part2 = str.partition(' ')

이 특별한 경우에는이 작업을 수행 할 수 있지만 예쁜 해결책은 아닙니다.

part0, part2 = str.partition(' ')[::2]

보다 난해한 솔루션 :

from operator import itemgetter
part0, part2 = itemgetter(0, 2)(str.partition(' '))

다른 팁

맞습니다. 한 번에 튜플 목록에서 여러 임시 요소를 가져갈 수 없습니다.

part0, part1, part2 = str.partition(' ')

갈 길입니다. Part1에 대해 걱정하지 마십시오. 필요하지 않으면 필요하지 않습니다. 사용되지 않았 음을 보여주기 위해 "더미"또는 "사용하지 않은"이라고 부르는 것이 일반적입니다.

당신은 다음과 같이 못 생겼을 수 있습니다.

part0, part2 = str.partition(' ')[::2]

이 특정한 경우에는 난독 화되고 다른 사람들에게는 좋지 않습니다. ;)

얼마 전에 물었던 질문이 도움이 될 수 있다고 생각합니다.

매트릭스의 행을 얻는 Pythonic 방법

Numpy는 튜플 또는 인덱스 목록을 사용하여 다양한 요소를 추출하려는 슬라이스 구문을 제공하지만 문자열 목록 목록을 Numpy.Array로 변환하려면 몇 가지 요소를 추출하기 만하면됩니다. 당신은 도우미를 쓸 수 있습니다 :

def extract(lst, *indices):
    return [lst[i] for i in indices]

item0, item2 = extract(str.partition(' '), 0, 2)

당신은 또한 사용할 수 있습니다 str.split(' ', 1) 대신에 str.partition(' ')

튜플 대신 목록을 되 찾을 수 있지만 분리기를 다시 얻지 못할 것입니다.

이것이 내가하는 방법입니다.

all_parts = str.partition(' ')
part0, part2 = all_parts[0], all_parts[2]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top