Как сравнить два одномерных массива разной длины, с записью в новый массив только соответствующих данных?
Есть два списка. Один короткий, а второй длинный и в нем числа располагаются между значениями первого. Хочу сделать третий список, той же длинны что и второй(длинный), но в нем будут располагаться значения из первого, но с выполнением условий. То есть если в первом списке идет к примеру 230,240,250, то 230 будет стоять напротив 231, 236, 238, до тех пор пока во втором не появится 240+. Проблема усложняется тем, что я пишу телеграм-бота на Python и хочу сделать так чтобы программа работала с пользовательским вводом, чтобы можно было скопировать столбик чисел из Excel и вставить в telegram(средствами Excel не придумал как сделать),но из-за недостатка знаний кроме всего прочего мне кажется имеется проблема приведения типов
import telebot
import config
bot = telebot.TeleBot(config.CALC_BOT_TOKEN)
@bot.message_handler(commands=['start'])
def getMessageLoc(message):
numvan = bot.send_message(message.chat.id, 'Вставить короткий список')
bot.register_next_step_handler(numvan, num1_fun)
def num1_fun(message):
global num1;
num1 = message.text
numtwo = bot.send_message(message.chat.id, 'Вставить длинный список')
bot.register_next_step_handler(numtwo, num2_fun)
def num2_fun(message):
global num2;
num2 = message.text
calcu = bot.send_message(message.chat.id, 'Отправь "1" в чат для запуска')
bot.register_next_step_handler(calcu, calc1)
def calc1(message):
global calc;
calc = message.text
global list1;
list1 = num1.split() #Делю текст на отдельные элементы списка
global list2;
list2 = num2.split()
global list3;
list1 = [a for a in range(len(list1))] #Делаю массивы из данных
list2 = [b for b in range(len(list2))]
list3 = [c for c in range(len(list1))]
# list1 - длинный список
# list2 - короткий список
# list3 - итоговый список
for i in range (1, len(list1)):
if list2[i] < list1[i]:
list3.append(list1[i])
list1[i] = list1[i+1]
else:
list2[i] = list2[i+1]
return list3
#Вывожу новый список в виде сообщения
bot.send_message(message.chat.id, list3)
bot.polling(none_stop=True)
А проблема заключается в том, что либо ничего не выводится, либо индекс короткого списка (list2) выходит за пределы