Я кодирую Python, у меня есть такое упражнение:
long = [5, 2, 4] number = [1, 2, 3] ids = []
Я хочу иметь:
ids = [1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3]
Я хочу повторить 5 раз 1, 2 раза по 2, 4 раза по 3.
Не знаю, как это сделать.
Вы можете сделать это с помощью простого l oop, которое будет перебирать (times-to-repeat, number) пары и расширять ваш выходной список сгенерированным списком чисел:
(times-to-repeat, number)
for times, n in zip(long, number): ids.extend([n] * times) print(ids) # [1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3]
from collections import Counter long = [5, 2, 4] number = [1, 2, 3] ids = list(Counter(dict(zip(number, long))).elements()) print(ids)
Они предоставили вам два очень хороших решения, но я оставлю здесь метод грубой силы (вряд ли когда-либо лучший), так как вы, вероятно, более склонны понимать его:
long = [5, 2, 4] number = [1, 2, 3] ids = [] for i in range(len(long)): aux = 0 while (aux < long[i]): ids.append(number[i]) aux += 1 print(ids)