【发布时间】:2020-04-23 10:34:15
【问题描述】:
我编写这段代码是为了从另一个列表的中心切出一个列表,它似乎可以工作,但我觉得有可能更简洁有效地做到这一点(可能通过列表理解)?
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]
【问题讨论】:
-
[1,2,3,4,5,6]的预期输出是什么?[3,4,5]或[2,3,4]? -
@donkopotamus 预期的输出是
[3, 4, 5]。
标签: python list list-comprehension slice