[英]summing together elements in list in python
我有两个大小相同的列表t
和e
:每个元素t[i]
对应一个元素e[i]
。 我想打印每对t[i] e[i]
,但是只要相应的t[i]
和t[i-1]
小于1,就将元素e[i]
和e[i-1]
求和。在这种情况下,应该将元素e[5]
和e[4]
相加,因为相应的t[5]-t[4]<1
。 关键是,我想用第4 + 5个元素替换第4个元素,而不打印第5个元素。 我的代码是:
t = [1, 5, 10, 16, 20, 21, 28, 33, 39, 42, 45, 50, 56]
e = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M']
for j in range(1,12):
if t[j]-t[j-1] <= 1:
print t[j-1], e[j-1]+e[j]
else:
if t[j] > t[j-1]:
print t[j-1], e[j-1]
但这给了我:
1 A
5 B
10 C
16 D
20 EF
21 F
28 G
33 H
39 I
42 J
45 K
我不想打印21 F
,因为它已经在20 EF
汇总了。 我怎样才能做到这一点? 是否可以在if
条件结束时增加计数器i
? 先感谢您。
另一个解决方案是while循环:
t = [1, 5, 10, 16, 20, 21, 28, 33, 39, 42, 45, 50, 56]
e = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M']
j = 1
while j < len(t):
if t[j]-t[j-1] <= 1:
print t[j-1], e[j-1]+e[j]
j += 1
else:
if t[j] > t[j-1]:
print t[j-1], e[j-1]
j += 1
如果只是关于输出:
for i in range(0, len(t)):
if i<1:
print( t[i], e[i], end="")
else:
if t[i] - t[i-1] > 1:
print()
print( t[i], e[i], end="")
else:
print( e[i], end="")
版画
1 A
5 B
10 C
16 D
20 EF
28 G
33 H
39 I
42 J
45 K
50 L
56 M
您可以在这里使用解决方案,也可以看一下这篇文章: 跳过python中range函数中的值
t = [1, 5, 10, 16, 20, 21, 28, 33, 39, 42, 45, 50, 56]
e = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M']
skip = False
for j in range(len(t)):
if not skip:
if t[j]-t[j-1] <= 1:
print t[j-1], e[j-1]+e[j]
skip = True
else:
if t[j] > t[j-1]:
print t[j-1], e[j-1]
else:
skip = False
>1 A
>5 B
>10 C
>16 D
>20 EF
>28 G
>33 H
>39 I
>42 J
>45 K
>50 L
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.