我如何进行这个简单的列表理解?

发布于 2024-08-27 01:12:25 字数 405 浏览 4 评论 0原文

我是 python 新手,我正在尝试更好地了解列表推导式。
我什至不确定列表理解是否是我正在寻找的单词,因为我没有生成列表。但我正在做类似的事情。

这就是我想要做的:

我有一个数字列表,其长度可以被三整除。

假设我有 nums = [1, 2, 3, 4, 5, 6] 我想迭代列表并获得每组三位数的总和。 目前我正在这样做:

for i in range(0, len(nums), 3):
    nsum = a + b + c for a, b, c in nums[i:i+3]
    print(nsum)

我知道这是错误的,但是有办法做到这一点吗?我确信我忽略了一些可能非常简单的事情......但我想不出另一种方法来做到这一点。

I'm new to python, and I'm trying to get to know the list comprehensions better.
I'm not even really sure if list comprehension is the word I'm looking for, since I'm not generating a list. But I am doing something similar.

This is what I am trying to do:

I have a list of numbers, the length of which is divisible by three.

So say I have nums = [1, 2, 3, 4, 5, 6]
I want to iterate over the list and get the sum of each group of three digits.
Currently I am doing this:

for i in range(0, len(nums), 3):
    nsum = a + b + c for a, b, c in nums[i:i+3]
    print(nsum)

I know this is wrong, but is there a way to do this? I'm sure I've overlooked something probably very simple... But I can't think of another way to do this.

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

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

发布评论

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

评论(3

半夏半凉 2024-09-03 01:12:25

请参阅 sum(iterable[, start])内置的,并在切片上使用它。

从左到右对可迭代项开始求和并返回总计。 start 默认为 0。iterable 的项通常是数字,不允许是字符串。

>>> nums
[1, 2, 3, 4, 5, 6]
>>> [sum(nums[i:i+3]) for i in  range(0, len(nums),3)]
[6, 15]
>>> 

See sum(iterable[, start]) builtin, and use it on slices.

Sums start and the items of an iterable from left to right and returns the total. start defaults to 0. The iterable‘s items are normally numbers, and are not allowed to be strings.

>>> nums
[1, 2, 3, 4, 5, 6]
>>> [sum(nums[i:i+3]) for i in  range(0, len(nums),3)]
[6, 15]
>>> 
桃气十足 2024-09-03 01:12:25
import itertools

nums = [1, 2, 3, 4, 5, 6]

print [a + b + c for a, b, c in itertools.izip(*[iter(nums)] * 3)]
import itertools

nums = [1, 2, 3, 4, 5, 6]

print [a + b + c for a, b, c in itertools.izip(*[iter(nums)] * 3)]
紧拥背影 2024-09-03 01:12:25
nums = [1, 2, 3, 4, 5, 6]
map(sum, itertools.izip(*[iter(nums)]*3))
nums = [1, 2, 3, 4, 5, 6]
map(sum, itertools.izip(*[iter(nums)]*3))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文