我有一个问题需要理解这段代码
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']
答案 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>
本身。