Как добавить i-й элемент из списка в другой список i-й элемент раз из другого списка

#python-3.x

#python-3.x

Вопрос:

Предположим, у меня есть список [100,200,300,400] и другой список [2,3,1,2] , который я хочу вывести в виде [100,100,200,200,200,300,400,400]

Комментарии:

1. Что вы пробовали?

2. Как ваш вопрос относится к Python 3? Пожалуйста, прочтите текст справки, который появляется при выборе тега для вашего вопроса.

Ответ №1:

Вы можете создать новый список, как показано ниже:

 l1 = [100,200,300,400]
l2 = [2,3,1,2]

zipped_data = list(zip(l1,l2))

result = [x[0] for x in zipped_data for i in range(x[1])]

print(result)
  

Вывод:

 [100, 100, 200, 200, 200, 300, 400, 400]
  

Ответ №2:

 a = [100,200,300,400]
b = [2,3,1,2]
c=[i[0] for i in zip(a,b) for j in range(i[1])]
print(c)
  

вывод

 [100, 100, 200, 200, 200, 300, 400, 400]
  

Ответ №3:

первый метод:

 a = [100,200,300,400]
b = [2,3,1,2]
c = [i*100 for i in b]
d = (a   c).sort()
  

второй метод заключается:

 import numpy as np
a = [100,200,300,400]
b = [2,3,1,2]
c = np.r_[np.array(a), np.array(b)*100]
d = c.sort()
  

Ответ №4:

Этого можно достичь с помощью циклов for. Это базовый подход.

 l1 = [100,200,300,400]
l2 = [2,3,1,2]
result = []
for i in range(len(l2)):
    for j in range(l2[i]):
        result.append(l1[i])
print(result)