아래 예제에서 모든 요소가 튜플이 될 것으로 예상합니다. 튜플이 단일 문자열 만 포함 할 때 왜 문자열로 변환됩니까?
>>> a = [('a'), ('b'), ('c', 'd')]
>>> a
['a', 'b', ('c', 'd')]
>>>
>>> for elem in a:
... print type(elem)
...
<type 'str'>
<type 'str'>
<type 'tuple'>
답변
처음 두 요소는 튜플이 아니기 때문입니다. 그들은 단지 문자열입니다. 괄호는 자동으로 튜플을 만들지 않습니다. 튜플이어야 함을 파이썬에 나타 내기 위해 문자열 뒤에 쉼표를 추가해야합니다.
>>> type( ('a') )
<type 'str'>
>>> type( ('a',) )
<type 'tuple'>
예제 코드를 수정하려면 여기에 쉼표를 추가하세요.
>>> a = [('a',), ('b',), ('c', 'd')]
^ ^
로부터 파이썬 문서 :
특별한 문제는 0 개 또는 1 개의 항목을 포함하는 튜플을 구성하는 것입니다. 구문에는 이러한 항목을 수용하기위한 몇 가지 추가 특성이 있습니다. 빈 튜플은 빈 괄호 쌍으로 구성됩니다. 하나의 항목이있는 튜플은 쉼표가있는 값을 따라 구성됩니다 (단일 값을 괄호로 묶는 것으로 충분하지 않습니다). 못 생겼지 만 효과적입니다.
후행 쉼표 구문이 정말 싫다면 해결 방법은 a list
를 tuple()
함수 에 전달하는 것입니다 .
x = tuple(['a'])
답변
처음 두 예제는 튜플이 아니라 문자열입니다. 단일 항목 튜플에는 다음과 같이 후행 쉼표가 필요합니다.
>>> a = [('a',), ('b',), ('c', 'd')]
>>> a
[('a',), ('b',), ('c', 'd')]
답변
('a')
튜플이 아니라 문자열입니다.
끝에 쉼표를 추가하여 python
다음과 같이 처리해야합니다 tuple
.-
>>> a = [('a',), ('b',), ('c', 'd')]
>>> a
[('a',), ('b',), ('c', 'd')]
>>>