Python将列表列表转换为元组列表

时间:2013-12-07 17:45:45

标签: python list casting tuples

我正在尝试将列表列表转换为元组列表。

我的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

58不会将我的列表转换为元组,有没有办法将fb转换为元组到位?

答案 - 在评论中:

需要做d['bar'] = map(tuple, d['bar'])

1 个答案:

答案 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])