这段代码如何Pythonic [for]

我在用plt画饼状图。如下是简化的代码。

a_part = [2001, 12000]
b_part = [1001, 2000]
c_part = [11, 1000]
d_part = [1, 10]

data = range(1, 12000)
labels = [a_part, b_part, c_part, d_part]
sizes = []
for part in labels:
    sum = 0
    for each in data:
        sum += each if each >= part[0] and each <= part[1] else 0
    sizes.append(sum)
print(sizes)

其中这段代码如何Pythonic?

for part in labels:
    sum = 0
    for each in data:
        sum += each if each >= part[0] and each <= part[1] else 0
    sizes.append(sum)
阅读 2.9k
2 个回答
sizes = [sum(x for x in data if low<=x<=high) for low,high in labels]
sizes = [sum(each for each in data if part[0] <= each <= part[1]) for part in labels]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题