我有以下循环^
i = 0
for var in vars:
if var[ "ID" ] != 0 and var[ "ID" ] & 1:
print i, var[ "ID" ]
i += 1
我可以将enumerate
用于此循环而不是计数器i
吗?我如何设置枚举的增加,这取决于这个条件:if var[ "ID" ] != 0 and var[ "ID" ] & 1:
答案 0 :(得分:3)
您可以使用filter
:
>>> vs = [{'ID': 1}, {'ID': 4}]
>>> for i, v in enumerate(filter(lambda x: x['ID'] & 1, vs)):
... print i, v
...
0 {'ID': 1}
答案 1 :(得分:2)
不,我认为您不能使用enumerate
来简化此代码(首先不是没有细化vars
,因此enumerate
仅适用于符合条件的元素)
老实说,我认为代码非常简单。