列表 2 个元素乘以 2 个元素的总和
Sum of a list 2 elements by 2 elements
我有一个包含 25 个元素的列表,例如
tab=[6, 5, 5, 6, 3, 3, 2, 3, 2, 5, 6, 3, 2, 4, 5, 6, 4, 2, 1, 3, 1, 1, 4, 1, 5]
而且我想创建一个新列表 tab1,它会两两显示列表元素的总和,如果列表是奇数,我就不必计算最后一个元素的总和。
它必须通过 for 循环来完成...有什么想法吗?
任何帮助,将不胜感激。
我在我这边试过但没有成功。
我试过这个:
for i in tab:
print(sum(i:len(tab))
它给我一个语法错误,我尝试了一些其他的东西但没有用...
我也试过了
for i in tab:
print(sum(i,i+1))
也没用
当我这样做时
sum=0
for i in tab:
print(sum(tab[i]+tab[i+1]))
它返回给我:TypeError: 'int' object is not callable
您可以使用 2 步遍历列表。
orig_len = len(tab) # List length
tab1 = []
for i in range(0, orig_len - orig_len%2, 2):
tab1.append(tab[i] + tab[i+1])
print(tab1)
您必须将数字向下舍入到第一个更小的偶数,orig_len - orig_len%2
就是这样做的。
试试这个:
tab=[6, 5, 5, 6, 3, 3, 2, 3, 2, 5, 6, 3, 2, 4, 5, 6, 4, 2, 1, 3, 1, 1, 4, 1, 5]
print([sum(tab[i:i+2]) for i in range(0, len(tab),2)])
输出将是:
[11, 11, 6, 5, 7, 9, 6, 11, 6, 4, 2, 5, 5]
这可以通过以下方式实现:
tab = [6, 5, 5, 6, 3, 3, 2, 3, 2, 5, 6, 3, 2, 4, 5, 6, 4, 2, 1, 3, 1, 1, 4, 1, 5]
tab1 = []
initial_pos = 0
for i in range(2, len(tab), 2):
tab1.append(sum(tab[initial_pos:i]))
initial_pos = I
if i == len(tab) - 2:
tab1.append(sum(tab[i:]))
这里发生的事情是我们从第三个元素开始遍历 tab
并对切片 tab[0:2]
的元素值求和,然后 initial_pos
将假定值2 和我的值 4,所以在下一次迭代中我们将追加 sum(tab[2:4])
到 tab1 等等。
if 语句确保这适用于奇数列表和偶数列表。
我有一个包含 25 个元素的列表,例如
tab=[6, 5, 5, 6, 3, 3, 2, 3, 2, 5, 6, 3, 2, 4, 5, 6, 4, 2, 1, 3, 1, 1, 4, 1, 5]
而且我想创建一个新列表 tab1,它会两两显示列表元素的总和,如果列表是奇数,我就不必计算最后一个元素的总和。 它必须通过 for 循环来完成...有什么想法吗? 任何帮助,将不胜感激。 我在我这边试过但没有成功。
我试过这个:
for i in tab:
print(sum(i:len(tab))
它给我一个语法错误,我尝试了一些其他的东西但没有用...
我也试过了
for i in tab:
print(sum(i,i+1))
也没用
当我这样做时
sum=0
for i in tab:
print(sum(tab[i]+tab[i+1]))
它返回给我:TypeError: 'int' object is not callable
您可以使用 2 步遍历列表。
orig_len = len(tab) # List length
tab1 = []
for i in range(0, orig_len - orig_len%2, 2):
tab1.append(tab[i] + tab[i+1])
print(tab1)
您必须将数字向下舍入到第一个更小的偶数,orig_len - orig_len%2
就是这样做的。
试试这个:
tab=[6, 5, 5, 6, 3, 3, 2, 3, 2, 5, 6, 3, 2, 4, 5, 6, 4, 2, 1, 3, 1, 1, 4, 1, 5]
print([sum(tab[i:i+2]) for i in range(0, len(tab),2)])
输出将是:
[11, 11, 6, 5, 7, 9, 6, 11, 6, 4, 2, 5, 5]
这可以通过以下方式实现:
tab = [6, 5, 5, 6, 3, 3, 2, 3, 2, 5, 6, 3, 2, 4, 5, 6, 4, 2, 1, 3, 1, 1, 4, 1, 5]
tab1 = []
initial_pos = 0
for i in range(2, len(tab), 2):
tab1.append(sum(tab[initial_pos:i]))
initial_pos = I
if i == len(tab) - 2:
tab1.append(sum(tab[i:]))
这里发生的事情是我们从第三个元素开始遍历 tab
并对切片 tab[0:2]
的元素值求和,然后 initial_pos
将假定值2 和我的值 4,所以在下一次迭代中我们将追加 sum(tab[2:4])
到 tab1 等等。
if 语句确保这适用于奇数列表和偶数列表。