假设我有多个函数:
type = {'a', 'b', ..., 'z'}
f={}
f['a'] = some func_a...
f['b'] = some func_b...
...
f['z'] = some func_z...
现在我想得到它们的输出
output = {}
for t in type:
output[t] = f[t](input)
我想知道是否有任何方法,我们可以在一行中以不同的方式使用循环,比如
[output[t] for t in type] = [f[t](input) for t in type]
当然,这是行不通的。有什么有效的方法吗?你知道吗
你想要一个dictionary comprehension。它的工作原理类似于列表理解,但不是使用单个表达式来形成值,而是提供两个表达式来生成键和值:
dict comprehension生成一个新的dictionary对象;不需要或不需要初始的
output = {}
行。你知道吗我只需遍历
f
的项,因为它已经有了我们需要的键:作为补充说明,不要对所有
f
函数使用单独的赋值,只需使用一个字典定义:type
也不是变量的好名字,因为它掩盖了built-in function you may sometimes want to use。您不需要单独创建该集,因为对f
的迭代会给您相同的键,或者您可以使用set(f)
创建一个集副本,或者f.keys()
来获得一个dictionary view object over the keys of ^{f
的更改会反映在其中。你知道吗相关问题 更多 >
编程相关推荐