我如何设置枚举的增加,这取决于条件?

发布于 2024-12-22 17:51:51 字数 304 浏览 2 评论 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:

I have got the following loop^

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

Can I use enumerate for this loop instead of counter i ? How i can set the increasing of enumerate, that depends on this condition: if var[ "ID" ] != 0 and var[ "ID" ] & 1:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

Oo萌小芽oO 2024-12-29 17:51:51

您可以使用过滤器

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

You may use filter:

>>> vs = [{'ID': 1}, {'ID': 4}]
>>> for i, v in enumerate(filter(lambda x: x['ID'] & 1, vs)):
...     print i, v
...
0 {'ID': 1}
随风而去 2024-12-29 17:51:51

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

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

No, I don't think you can use enumerate to simplify this code (not without thinning vars first, so that enumerate would only apply to elements that match the condition).

To be honest, I think the code is pretty straightforward as it is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文