我有一个基本列表[1,4,10]
,需要以有效的方式转换为基本列表中每个元素的连续元素的列表
示例:
[1,4,10]
将为[1,2,4,5,10,11]
。[1,4,10]
将为[1,2,3,4,5,6,10,11,12]
。答案 0 :(得分:1)
arr=[1,4,10]
con=3
[r + i for r in arr for i in range(con)]
# [1, 2, 3, 4, 5, 6, 10, 11, 12]
答案 1 :(得分:0)
这是一种方法。 itertools.chain
消除了对显式嵌套循环的需要。
from itertools import chain
def consecutiver(lst, n=3):
return list(chain.from_iterable(range(i, i+n) for i in lst))
res = consecutiver([1, 4, 10], 2)
# [1, 2, 4, 5, 10, 11]
res2 = consecutiver([1, 4, 10], 3)
# [1, 2, 3, 4, 5, 6, 10, 11, 12]
答案 2 :(得分:0)
这是一个班轮,假设列表是x,'连续'的数量是c:
reduce(lambda a, b: a + b, map(lambda x: range(x, x+c), x))
答案 3 :(得分:0)
a = [1,4,10]
k = 3 #no of consecutive
x=[range(b,b+k) for b in a]
output = [m for d in x for m in d]