2016-04-29 53 views
0

MYLIST /数字= [14,35,37,39,42]remove元素(一个或多个)从列表中不属于其它数量的x个内列表

我需要添加仅数字在一起在3个数字之内。换句话说,数字35,37,39和42,但不是14.是否有一种简单的方法来检查列表中的每个元素(数字),以查看在3个数字中是否至少有一个其他数字数(仅供参考,该列表中的号码始终处于升序)...,然后从列表中删除该号码,以便我可以再只是做:

总和(MYLIST)

回答

0

是有:

>>> 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 > 0i < len(mylist) - 1是如此,该指数永不熄灭界和v - mylist[i-1] <= 3mylist[i+1]-v <= 3检查与下一个或上一个元素的差值是否小于或等于3.

如果要对它们进行分组并添加,那么将添加至少一个小于或等于3的伙伴的所有数字不同的小组需要单独更改您的列表。例如,如果你有[1, 3, 5, 20, 23, 25, 27]它会加起来所有的数字。

相关问题