Как организовать цикл в данном случае? Доброй ночи. Вопрос таков -- на вход подаются два массива. В одном просто 60 элементов-чисел (reportsarray), а другой (freqarray) задается в текстовом файле, причем со временем количество элементов в этом файле буду менять. Какие добавлять, какие-то удалять (тоже числа).
Нужно сделать так, чтобы каждый элемент этого изменяющегося массива freqarray умножался на каждый из элементов массивa reportsarray. По отдельности. И на выходе получилось так: в файле n значений --> на выходе n массивов.
Вот тут пример кода, когда в файле задано 3 значения (работает). Никак не пойму, как в цикл запихнуться, чтоб можно было при энном количестве значений получить n массивов на выходе...def getx(timearray, freqarray):
xlist0 = []
xlist1 = []
xlist2 = []
for i in timearray:
i0 = i * freqarray[0]
i1 = i * freqarray[1]
i2 = i * freqarray[2]
xlist0.append(i0)
xlist1.append(i1)
xlist2.append(i2)
print(len(xlist0))
print(xlist0)
print(len(xlist1))
print(xlist1)
print(len(xlist2))
print(xlist2)

21 Авг 2019 в 07:05
215 +1
0
Ответы
1

Вы можете использовать цикл для итерации по каждому элементу массива freqarray и выполнить необходимые операции. Вот пример того, как вы можете изменить ваш код, чтобы он работал для любого количества элементов в массиве freqarray:

def getx(timearray, freqarray):
xlists = {i: [] for i in range(len(freqarray))}
for j in range(len(freqarray)):
for i in timearray:
xlist = i * freqarray[j]
xlists[j].append(xlist)
for key in xlists:
print(len(xlists[key]))
print(xlists[key])

Этот код создаст словарь xlists, где ключи будут соответствовать индексам элементов массива freqarray. Далее он будет проходить по каждому элементу массива freqarray и умножать его на каждый элемент массива timearray. Результаты будут сохраняться в соответствующий список в словаре xlists.

Обратите внимание, что элементы списков будут сохраняться в порядке, в котором они были заданы в исходном массиве freqarray. В конце кода будет осуществлен вывод всех полученных списков.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир