2014-05-19 2 views
0

목록 목록 (b)으로 변경하려는 튜플 목록 (a)이 있습니다.튜플 목록을 파이썬 목록 목록으로 바꾸기

a = [('ad','as'),('bs','bt'),('cs','cr')] 
b = [['ad','as'],['bs','bt'],['cs','cr']] 

아래 코드를 시도했지만 아무 것도 변경하지 않았습니다. 내가 놓친 게 있니?

b = [] 
for element in a: 
    b.append(list(element)) 
+3

코드가 정확합니다. 'b'는 당신이 원하는대로 될 것입니다. 문제가 무엇입니까? –

+0

* 아무 것도 바뀌지 않습니다 * 어떻게 확인하나요? –

+0

@TimCastelijns가 내 튜터가 제공 한 테스트 코드에서 코드를 시도했습니다. – user3651651

답변

2

당신은 같은 짧은 솔루션을 시도 할 수 있습니다 :

b = map(list,a) 

이 'A'의 모든 단일 요소에 list 함수를 적용하여 새 목록을 생성합니다.

이지도는 이해 목록을 사용하여 상대적으로 더 긴 코드에 해당 :

b = [ list(x) for x in a] 
+0

더 많은 방법 pythonic. +1 – svvac

0
a = [('ad','as'),('bs','bt'),('cs','cr')] 
b = [[elem[0], elem[1]] for elem in a] 
-1
a = [('ad','as'),('bs','bt'),('cs','cr')] 
b = [] 
for element in a: 
    b.append(list(element)) 
print(b) 

는 b는 목록의 원하는 목록 지금 있음을 보여줍니다 - 그래서 당신의 코드는 잘 작동 ...

AND : 예 :

와 같이 실제로 b을 정의하면 아무런 변화도 없습니다.
  1. 은 먼저 BAS 당신은 (빈) 새 목록을 작성하고 b
  2. 원하는 값이 목록을 채울 레이블
  3. 를 원하는 정의합니다.

-> 새로운 b은 이전 b과 동일하므로 코드가 작동하더라도 눈에 보이는 변경 사항이 없습니다.

튜플 요소를 두 번 추가하려면 b = [] 행을 삭제하면됩니다.

+1

아마 이것이 OP 코드와 정확히 일치하므로 –

0
>>>a = [('ad','as'),('bs','bt'),('cs','cr')] 
>>>b = [list(item) for item in a] 
>>>b 
[['ad', 'as'], ['bs', 'bt'], ['cs', 'cr']] 
관련 문제