2010-03-12 2 views
2

나는 튜플 긴 정수 목록을 포함하는 목록은 다음과 같습니다있다 :파이썬 : 튜플과 containg Lits long int와

table = [(1L,), (1L,), (1L,), (2L,), (2L,), (2L,), (3L,), (3L,)] 

가 어떻게 공식적인 목록과 같이 할 수있는 테이블을 변환합니까?

정도로 출력이 될 것이다 :

table = ['1','1','1','2','2','2','3','3'] 

정보 용 데이터는 MySQL 데이터베이스로부터 수득 하였다.

답변

8
>>> table = [(1L,), (1L,), (1L,), (2L,), (2L,), (2L,), (3L,), (3L,)] 
>>> [int(e[0]) for e in table] 
[1, 1, 1, 2, 2, 2, 3, 3] 

>>> [str(e[0]) for e in table] 
['1', '1', '1', '2', '2', '2', '3', '3'] 
+0

대단히 감사합니다. – Yasmin

+2

에밀이 어떻게했는지 알고 싶을 수도 있습니다.) 목록 내장이라는 매우 유용한 파이썬 기능 : http://docs.python.org/tutorial/datastructures.html#list- 독해력 – c089

2

itertools

import itertools 

>>> x=[(1L,), (1L,), (1L,), (2L,), (2L,), (2L,), (3L,), (3L,)] 
>>> 
>>> list(itertools.chain(*x)) 
[1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L] 
>>> 
>>> map(str,itertools.chain(*x)) 
['1', '1', '1', '2', '2', '2', '3', '3'] 
1

으로 당신의 int와 걷고 사이의 차이점에 대해 걱정하지한다. 오래 인쇄하려고하면 L이 사라집니다.

nums = [1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L] 
>>> for num in nums: 
...  print num, 
1 1 1 2 2 2 3 3 

왜 결과 목록에 문자열을 포함 하시겠습니까? 인쇄하고 싶을 때까지 숫자로 표시해야합니다. 그럼 당신은 당신이 포인트 또는 진수 부동 다루는 시작 특히 경우.도보다 유연하다 (문자열 서식을 사용하여 문자열로 변환 할 수 있습니다.

>>> print "Your number is: %d" % 1L 
Your number is 1 
>>> print "If we're talking money, you might want $%.2f" % 2L 
If we're talking money, you might want $2.00 

모든 것이 예상대로 작동합니다. 더 엘에만 나타납니다 . 긴의 repr에, 당신은 당신이 걷고 대신의 int와 협력하고 알 수 있도록

, 자신의 튜플에서 그들을하려면 다음 중 하나를 수행 할 수 있습니다 수행

>>> nums = [(1L,), (1L,), (2L,), (3L,)] 
>>> nums = [x[0] for x in nums] 

이는에 복사 목록을 새 목록 또는 할 수있는 작업 :

>>> for i, num in enumerate(nums): 
...  nums[i] = num 

>>> for i in xrange(nums): 
...  nums[i] = int(nums[i]) 

새 목록을 만들지 않고 원래 목록을 수정합니다. 두 경우 모두 num에는 longs 목록이 저장됩니다.

관련 문제