#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)