2013-12-07 2 views
0

목록 목록을 튜플 목록으로 변환하려고합니다.파이썬 목록 목록을 튜플 목록으로 변환합니다.

내 파이썬 2.6.8 코드는 다음과 같습니다

1. dicts = List of dictionaries all with same set of keys foo and bar 
2. for d in dicts: 
3.  for f in d['foo']: # d['foo'] is a list of lists 
4.   f.change_some_stuff_inplace(with_some_other_stuff) 
5.   f = tuple(f) # this obviously doesn't work - it just converts f locally 
6.  for b in d['bar']: # d['bar'] is also a list of lists 
7.   b.change_some_stuff_inplace(with_yet_some_other_stuff) 
8.   b = tuple(b) # again this doesn't work 

의 선 58는 튜플에 내 목록을 캐스팅하지 않습니다, 현재 위치에서 튜플에 f들과 b들로 변환하는 방법은 무엇입니까 ?

답변 - 주석 :

하나는 d['bar'] = map(tuple, d['bar'])을 할 필요가있다.

+1

'D [ '바'] =지도 (튜플, D [ '바'])'아마 당신이 –

+0

계신 내가있다는 - 완벽하게 잘되었다! – baibo

답변

2

다음 좋아요 :

d['foo'] = map(tuple, d['foo']) 
d['bar'] = # etc... 

당신이 2.x 및 3.x 모두이 일을하고 싶어한다면, 대신리스트 빌려 사용

d['foo'] = [tuple(el) for el in d['foo']] 

을 그리고 아마 만들 그것은 좀 더 일반적인 :

for key in ('foo', 'bar'): 
    d[key] = [tuple(el) for el in d[key]) 
관련 문제