Я написал этот код, чтобы вырезать список из центра другого, и он, кажется, работает, но я чувствую, что возможно сделать это более аккуратно и эффективно (возможно, с использованием списка)?
def get_middle(num, val_list):
idx_val = (int(num/2) , int(num/2 + num%2))
center_idx = int((len(val_list) - 1)/2)
idx_one, idx_two = center_idx-idx_val[0], center_idx+idx_val[1]
return val_list[idx_one:idx_two]
test_list = [1,2,3,4,5,6,7]
test_num = 3
new_list = get_middle(test_num , test_list )
print(new_list)
Вывод вышеуказанного кода: [3, 4, 5]