세트와리스트 모두에서 작동 할 수 있고 시퀀스의 수정 된 형식을 반환해야하는 함수가있는 경우 시퀀스 유형을 유지하지만 여전히 이해력을 사용하는 방법이 있습니까? ? 예를 들어, 다음과 같이 stripcommonpathprefix
을 세트로 호출하면 작동하지만 세트를리스트로 변환하는 바람직하지 못한 부작용이 있습니다. 직접 isinstance
을 확인하지 않고 유형을 유지하면서 (여전히 이해력을 사용하면서) 올바른 유형을 반환 할 수 있습니까? 그렇지 않다면, 이것을하는 가장 깨끗한 방법은 무엇입니까?파이썬에서 세트 또는리스트 이해에서 시퀀스 유형 유지하기
def commonpathprefix(seq):
return os.path.commonprefix(seq).rpartition(os.path.sep)[0] + os.path.sep
def stripcommonpathprefix(seq):
prefix = commonpathprefix(seq)
prefixlen = len(prefix)
return prefix, [ p[prefixlen:] for p in seq ]
감사합니다. 기본 질문 인 경우 죄송합니다. 파이썬을 배우기 시작했습니다.
P.S. 파이썬 3.2.2를 사용하고 있습니다.
왜이 작업을 수행해야합니까? 좋은 이유를 정말로 생각할 수 없다 ... –