所以我正在使用通过以下功能向系统添加组件的函数:
es.add(components[i][0] for i in components.keys())
components是一个python字典,看起来像这样:
components = {'a': (a0, a1),
'b': (b0, None)}
我正在尝试实现的目的是我想使用for-loop
运行上述except
,如果add()
无法运行components
函数字典给出None
。
我尝试过的事情:
es.add(components[i][1] for i in components.keys() except None)
Ofc给出语法错误。它的语法是什么?
示例:
es.add(components[i][1] for i in components.keys())
以上等于:
es.add(a1)
es.add(None)
我想以仅添加a1
并跳过None
的方式编写for循环。
答案 0 :(得分:0)
我认为它就像[components[i][1] for i in components.keys() if type(components[i][1]) != type(None)]
以便下面的代码可以正常工作
es.add(components[i][1] for i in components.keys() if type(components[i][1]) != type(None))
答案 1 :(得分:0)
使用if
条件,因为在这种情况下except
没有用。您还可以通过直接迭代dict.values()
使其更短,更易读:
es.add(x for _, x in components.values() if x is not None)