Programing

요소가 하나만있는 튜플을 만드는 방법

lottogame 2020. 9. 16. 08:22
반응형

요소가 하나만있는 튜플을 만드는 방법


아래 예제에서 모든 요소가 튜플이 될 것으로 예상합니다. 튜플이 단일 문자열 만 포함 할 때 왜 문자열로 변환됩니까?

>>> 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 listtuple()함수 에 전달하는 것입니다 .

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')]
>>> 

단일 요소로 튜플을 만드는 방법에는 두 가지가 있습니다.
(i) 첫 번째는 쉼표로 구분 된 단일 요소를 생성 한 다음 튜플이되는 것입니다.

>>>t2 = ('a',)
>>>print(type(t2))
<class tuple>

(ii) 두 번째는 단일 요소로 목록을 만든 다음 튜플로 변환하는 것입니다. 그러면 튜플이됩니다.

>>>l1 = [1]
>>>t1 = tuple(l1)
>>>print(type(t1))
<class tuple>

참고 URL : https://stackoverflow.com/questions/12876177/how-to-create-a-tuple-with-only-one-element

반응형