2024-04-26 07:26:53 发布
网友
mylist=[14,35,37,39,42]
我只需要把相距3个数字以内的数字相加。换句话说,数字是35、37、39和42,而不是14。是否有一种简单的方法来检查列表中的每个元素(数字),以查看在该数字的3个数字内是否至少有一个其他数字(仅供参考,列表中的数字将始终按升序排列)…然后从列表中删除该数字,以便我可以执行以下操作:
总和(mylist)
是的,有:
>>> mylist = [14,35,37,39,42] >>> sum(v for i, v in enumerate(mylist) ... if (i > 0 and v - mylist[i-1] <= 3) or ... (i < len(mylist) - 1 and mylist[i+1]-v <= 3)) 153
i > 0和i < len(mylist) - 1这样索引就不会越界,v - mylist[i-1] <= 3和mylist[i+1]-v <= 3检查与下一个或上一个元素的差值是否小于或等于3
i > 0
i < len(mylist) - 1
v - mylist[i-1] <= 3
mylist[i+1]-v <= 3
这将添加至少有一个小于或等于3的伙伴的所有数字,如果您要将它们分组并分别添加不同的组,则需要稍微更改列表。例如,如果你有[1, 3, 5, 20, 23, 25, 27],它会把所有的数字加起来
[1, 3, 5, 20, 23, 25, 27]
是的,有:
i > 0
和i < len(mylist) - 1
这样索引就不会越界,v - mylist[i-1] <= 3
和mylist[i+1]-v <= 3
检查与下一个或上一个元素的差值是否小于或等于3这将添加至少有一个小于或等于3的伙伴的所有数字,如果您要将它们分组并分别添加不同的组,则需要稍微更改列表。例如,如果你有
[1, 3, 5, 20, 23, 25, 27]
,它会把所有的数字加起来相关问题 更多 >
编程相关推荐