@Timebird

Вопрос по алгоритму в списке?

Здравствуйте.
Вопрос небольшой: допустим имеется список:a = [12 35 49] и нужно задать для каждого числа диапазон на +- два числа. Ну, то есть, в результате получить:
a = [10 11 12 13 14    33 34 35 36 37    47 48 49 50 51]
(пробелы поставил, чтобы просто видно было). Так-то без проблем его сделать, но вот не доходит, как сделать так, чтобы можно было менять пределы задаваемых изменений. То есть, допустим, сделать не на 2 такта, а на 3, чтоб было:
a = [9 10 11 12 13 14 15    32 33 34 35 36 37 38    46 47 48 49 50 51 52]
и т.д. Можете подсказать, как такое реализовать?
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
lxsmkv
@lxsmkv
Test automation engineer
a = [12,35,49]
bracket = 3;
result = []
for x in a:
	for i in range(-bracket,bracket+1):
		result.append(x+i);
print result

[9, 10, 11, 12, 13, 14, 15, 32, 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 50, 51, 52]

а можно и так
items = [12,35,49]
bracket = 3
result = sum(list(map(lambda x: range(x-bracket,x+bracket+1), items)),[])
print result

[9, 10, 11, 12, 13, 14, 15, 32, 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 50, 51, 52]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы