列表从findall到dict

时间:2013-04-04 01:16:12

标签: python regex list dictionary

我有一些看起来像这样的数据:

<subject="execute_and_get_modifiers"\><command="send_key"\><normalkey="b"\><modifier="0"\>

我有一个很好地找到项目的正则表达式..像这样

p = re.compile('<([\w]+)="([\w\d]+)"')
self.data =  dict(p.findall(request))

看起来像:

 {'modifier': '0', 'normalkey': 'b', 'command': 'send_key', 'subject': 'execute_and_get_modifiers'}

这才是关键:价值对。那么如何访问say self.data ['modifier']?

我尝试在self.data中执行key,value:但是我得到“ValueError:解压缩的值太多了” - 但是它的两个项目每个dict项目不是吗?

现在变得轻松 - 我知道我是个傻瓜,但无法理解为什么......

2 个答案:

答案 0 :(得分:2)

您的陈述应该是:

for key, value in self.data.items()

答案 1 :(得分:1)

更好:

for key, value in self.data.iteritems()

当您对这些对进行迭代时,您应该使用iteritems()而不是items()来节省内存。 items()将在内存中构建(键,值)对的列表,而iteritems()将返回键值对的视图,您可以在常量内存空间中迭代。