python 2.6中,字典列表的遍历操作

何世友 发布于 2011/07/23 21:07
阅读 3K+
收藏 0

我有这样一个列表,列表的项都是字典,字典中是键值对,如:

l = [{"a":1,"b":2},{"a":3,"b":4}]
我要做这样一个操作,我要将这些键值对做一个处理,如,将所有的值变成字符串:

在2.6中,我无法用3.0中的方法:

for i in l:
    d = {k : str(v) for (k,v) in i.items()}
    new.append(d)
甚至:
[{k : str(v) for (k,v) in i.items()} for i in l]
我用如下方法可以做到:

for i in l:
	for (k,v) in i.items():
		d[k] = str(v)
	new.append(d)

output:

[{'a': '3', 'b': '4'}, {'a': '3', 'b': '4'}]
一定有更好的方法吧?

 

 

 

 

加载中
0
ValueError
ValueError

[dict((k, str(v)) for k,v in dic.items()) for dic in l]

这是利用了 dict 的构造函数,dict 支持从 tuple 到 dict 的转换。

print dict([('k1','v1'),('k2','v2'),('k3','v3')])
# {'k3': 'v3', 'k2': 'v2', 'k1': 'v1'}

 

 

0
何世友
何世友
修复:

for i in l:
    d = {}
    for (k,v) in i.items():
        d[k] = str(v)
    new.append(d)

output:

[{'a': '1', 'b': '2'}, {'a': '3', 'b': '4'}]

返回顶部
顶部