我正在尝试将列表列表转换为元组列表。
我的Python 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
行5
和8
不会将我的列表转换为元组,有没有办法将f
和b
转换为元组到位?
答案 - 在评论中:
需要做d['bar'] = map(tuple, d['bar'])
。
答案 0 :(得分:2)
那好吧:
d['foo'] = map(tuple, d['foo'])
d['bar'] = # etc...
如果你想让这个对2.x和3.x都有效,那么请改用list-comp:
d['foo'] = [tuple(el) for el in d['foo']]
然后可能会使它更通用:
for key in ('foo', 'bar'):
d[key] = [tuple(el) for el in d[key])