是否可以将此代码片段转换为列表理解?如何?

发布于 2024-10-16 05:49:57 字数 266 浏览 2 评论 0原文

a = 0
b = {'a': [(1, 'a'), (2, 'b'), (3, 'c')], 'b': [(4, 'd'), (5, 'e')]}

for c, d in b.iteritems():
    for e, f in d:
        a += e

// now a = 15

尝试了几种方法。我想知道一种方法(如果可能的话)通过列表理解来简化这个总和:

a = sum(...)

提前谢谢您, pf.me

a = 0
b = {'a': [(1, 'a'), (2, 'b'), (3, 'c')], 'b': [(4, 'd'), (5, 'e')]}

for c, d in b.iteritems():
    for e, f in d:
        a += e

// now a = 15

Tried several ways. I want to know a way (if possible) to simplify this sum with a list comprehension:

a = sum(...)

Thank you in advance,
pf.me

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

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

发布评论

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

评论(2

So要识趣 2024-10-23 05:49:57

a = sum(e for d in b.itervalues() for e, _ in d) 适用于 Python 2.7。

a = sum([e for d in b.itervalues() for e, _ in d]) 适用于 Python 2.3。

我还没有尝试过,但是 a = sum(e for d in b.values() for e, _ in d) 应该是 Python 3.0 的等效项。

a = sum(e for d in b.itervalues() for e, _ in d) works in Python 2.7.

a = sum([e for d in b.itervalues() for e, _ in d]) works in Python 2.3.

I haven't tried it, but a = sum(e for d in b.values() for e, _ in d) should be the Python 3.0 equivalent.

酒儿 2024-10-23 05:49:57

sum(j for _,i in b.iteritems() for j,_ in i) 就可以了。

sum(j for _,i in b.iteritems() for j,_ in i) will do it.

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