본문 바로가기

tuple5.2

Python 객체가 리스트 또는 튜플인지 (하지만 문자열은 아닌지) 확인하는 방법은 무엇인가요?, How to check if an object is a list or tuple (but not string)? 질문 이는 입력이 list/tuple이지만 str은 아님을 확인하기 위해 일반적으로 수행하는 작업입니다. 때때로 함수가 실수로 str 객체를 전달하는 버그를 발견하곤 하는데, 대상 함수는 lst가 실제로 list 또는 tuple임을 가정하고 for x in lst를 수행합니다. assert isinstance(lst, (list, tuple)) 제 질문은: 이를 더 잘 달성할 수 있는 방법이 있을까요? 답변 파이썬 2에서만 (파이썬 3에서는 아님): assert not isinstance(lst, basestring) 이게 실제로 원하는 것이에요. 그렇지 않으면 list나 tuple의 하위 클래스가 아니지만 리스트처럼 동작하는 많은 것을 놓칠 수 있어요. 2023. 10. 29.
Python 왜 파이썬에는 튜플 내장(comprehension)이 없을까요?, Why is there no tuple comprehension in Python? 질문 우리는 모두 알다시피, 리스트 컴프리헨션이 있습니다. 예를 들면 [i for i in [1, 2, 3, 4]] 그리고 딕셔너리 컴프리헨션이 있습니다. 예를 들면 {i:j for i, j in {1: 'a', 2: 'b'}.items()} 하지만 (i for i in (1, 2, 3)) 는 제너레이터가 됩니다. tuple 컴프리헨션이 아닙니다. 그 이유는 무엇일까요? 제 추측은 tuple이 불변형(immutable)이기 때문인데, 이것이 정답인 것 같지는 않습니다. 답변 생성자 표현식을 사용할 수 있습니다: tuple(i for i in (1, 2, 3)) 하지만 괄호는 이미 생성자 표현식을 위해 사용되었습니다. 2023. 10. 16.