0

次のループがあります^

i = 0
for var in vars:
    if var[ "ID" ] != 0 and var[ "ID" ] & 1:
        print i, var[ "ID" ]
        i += 1      

enumeratecounter の代わりに for このループを使用できます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 に答える