簡體   English   中英

我如何設置枚舉的增加,取決於條件?

[英]How i can set the increasing of enumerate, that depends on condition?

我有以下循環^

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:

您可以使用filter

>>> vs = [{'ID': 1}, {'ID': 4}]
>>> for i, v in enumerate(filter(lambda x: x['ID'] & 1, vs)):
...     print i, v
...
0 {'ID': 1}

不,我認為您不能使用enumerate來簡化此代碼(不是先不精簡vars ,這樣enumerate僅適用於符合條件的元素)。

老實說,我認為代碼非常簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM