싱글톤 튜플의 수수께끼와 문자열 변환
단일 요소로 튜플을 생성할 때 튜플이 유지될 것으로 기대할 수 있습니다. 자연. 그런데 Python에서는 특이한 동작이 발생합니다.
문제:
다음 코드를 고려하세요.
a = [('a'), ('b'), ('c', 'd')]
놀랍게도 인쇄할 때 a에 있는 각 요소의 유형을 분석하면 다음과 같은 결과가 나옵니다.
['a', 'b', ('c', 'd')] <type 'str'> <type 'str'> <type 'tuple'>
왜 처음 두 요소는 괄호로 묶여 있음에도 불구하고 튜플 대신 문자열로 동작합니까?
답변:
핵심은 튜플에 대한 Python 구문을 이해하는 데 있습니다. 괄호만으로는 단일 요소가 포함된 튜플을 생성할 수 없습니다. 이렇게 하려면 요소 뒤에 쉼표를 추가해야 합니다. 이러한 차이점은 아래에 설명되어 있습니다.
type(('a')) # A string type(('a',)) # A tuple
코드 예제를 수정하려면 단일 요소 문자열 뒤에 쉼표를 추가하세요.
a = [('a',), ('b',), ('c', 'd')]
이유:
Python 문서에 따르면 빈 튜플과 단일 항목이 있는 튜플에는 고유한 구문 요구 사항이 있습니다. 빈 튜플은 빈 괄호 쌍으로 생성되는 반면 단일 항목이 있는 튜플에는 값 뒤에 쉼표가 와야 합니다.
회피:
후행 쉼표가 미적으로 보기 좋지 않으면 tuple() 메서드에 목록을 전달하여 단일 요소로 튜플을 만들 수 있습니다. 기능:
x = tuple(['a'])
위 내용은 Python이 `('a')`를 튜플이 아닌 문자열로 처리하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!