0

我有以下循环^

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:

4

2 回答 2

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}
于 2011-12-23T08:46:20.517 回答
2

不,我认为您不能使用它enumerate来简化此代码(首先要进行细化vars,因此这enumerate仅适用于符合条件的元素)。

老实说,我认为代码非常简单。

于 2011-12-23T08:44:01.483 回答