2012-08-22 80 views
1

使用for循环,以下python代码有效。Python列表理解语法错误

for item in results: 
    item ['currentservertime'] = int(time.time()) 

但是我想用列表理解来做。所以我尝试了以下,但我得到一个语法错误=

item['currentservertime'] = int(time.time()) for item in results 

我在哪里出错了?

+0

ps我应该提到我刚刚开始python – Anton

+2

这不是LC的工作方式,也不是LC的用途。 –

回答

10

列表理解在这里不起作用,因为你不是在任何时候建立一个列表 - 你正在改变各种字典中的值。列表理解是正确的工具,如果你的原代码的形式为:

currentservertime = [] 
for item in results: 
    currentservertime.append(int(time.time()) 

这将转化为列表理解:

currentservertime = [int(time.time()) for item in results] 

目前的情况是,现有的循环是最明确,最直接的方式来实现你在做什么。

0
[i.update({'currentservertime': int(time.time())}) for i in results]