需要帮助来理解这段代码

时间:2015-08-07 20:27:55

标签: python python-2.7

我有一个问题需要理解这段代码

def get_device_sensors(device_id):
    return [elm["sensor"] for elm in db.DB.query("select * from data ",
                                                 (device_id,))]

我是python中的新手。我不知道elm["sensor"]的意思 这是什么意思?:

for elm in db.DB.query("select * from data ")
    return elm['sensor']

1 个答案:

答案 0 :(得分:3)

这意味着完全相同:

results = []
for elem in db.DB.query("SELECT * FROM data", (device_id,)):
    results.append(elem['sensor'])

return results

这是一个list comprehension,就像@khelwood所说,这意味着你正在构建一个可以迭代的列表。

总结:

[ <operation> for <values> in <iterable> ]

基本上是:

的简写
accumulator = []
for <values> in <iterable>:
     accumulator.append(<operation>)
# accumulator contains the result now.

<operation>通常会对<values>执行某些操作,但它也可能是常量,或者只是<values>本身。