Как вставлять элементы в список с разделенными интервалами, чтобы соответствовать длинам другого списка? - PullRequest
1 голос
/ 07 октября 2019

Я написал код, который вставляет / дублирует элементы в список меньших len, чтобы соответствовать len большего списка. код:

l1=[big list of length:491]
l2=[small list of lenth: 153]
l= abs(len(l2)-len(l1))==> 338
i=0
j=1
while i<l:
    l2.insert(j,l2[j])
    j+=2
    i += 1

Но после некоторых циклов я получаю эту ошибку

IndexError: list index out of range, потому что l>len(l2) и код / ​​алгоритм перехватывает len (l2). Есть ли лучшее решение для решения этой проблемы?

я ожидаю, что l1 это любой список размером 30, например, и вывод l2=[1,2,3,4,5] должен быть таким, как [1,1,2,2,3,3,4,4,5,5]

1 Ответ

1 голос
/ 07 октября 2019

Я надеюсь, что это решит ваши требования:

l1=[1, 2, 3, 4, 5, 6, 7, 8]
l2=[11, 12, 13, 14, 15]

# Quotient of the lengths of both lists
quotient = float(len(l1)) / float(len(l2))

new_l = []
for i in range(len(l1)):
    # Divide the quotient from the index to get value of l2 which will be added. 
    new_l.append(l2[int(i/quotient)])

print(new_l)

Ouput:

>> [11, 11, 12, 12, 13, 14, 14, 15]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...