>백엔드 개발 >파이썬 튜토리얼 >Python이 `('a')`를 튜플이 아닌 문자열로 처리하는 이유는 무엇입니까?

Python이 `('a')`를 튜플이 아닌 문자열로 처리하는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-17 11:33:24403검색

Why Does Python Treat `('a')` as a String, Not a Tuple?

싱글톤 튜플의 수수께끼와 문자열 변환

단일 요소로 튜플을 생성할 때 튜플이 유지될 것으로 기대할 수 있습니다. 자연. 그런데 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.