Python 有没有更有效的方法将一个列表从另一个列表的中心切掉?

Python 有没有更有效的方法将一个列表从另一个列表的中心切掉?,python,list,list-comprehension,slice,Python,List,List Comprehension,Slice,我写这段代码是为了把一个列表从另一个列表的中心切掉,这似乎是可行的,但我觉得这样做可能更简洁、更有效(可能是通过列表理解) 上述代码的输出是:[3,4,5]是的,您可以在一行中完成 test_list[len(test_list)//2-test_num//3:len(test_list)//2+test_num//3+1] 当然,必须根据test_num的奇偶性和列表长度的奇偶性进行一些调整。是的,您可以在一行中完成 test_list[len(test_list)//2-test_num/

我写这段代码是为了把一个列表从另一个列表的中心切掉,这似乎是可行的,但我觉得这样做可能更简洁、更有效(可能是通过列表理解)


上述代码的输出是:
[3,4,5]

是的,您可以在一行中完成

test_list[len(test_list)//2-test_num//3:len(test_list)//2+test_num//3+1]

当然,必须根据test_num的奇偶性和列表长度的奇偶性进行一些调整。

是的,您可以在一行中完成

test_list[len(test_list)//2-test_num//3:len(test_list)//2+test_num//3+1]
当然,必须根据test_num的奇偶性和列表长度的奇偶性进行一些调整。

代码:

def get_middle(num, sequence):
    m = (len(sequence) - 1)//2 - num//2
    return sequence[m:m+num]


test_list = [1, 2, 3, 4, 5, 6, 7]
test_num = 3
print(get_middle(test_num, test_list))
[3, 4, 5]
输出:

def get_middle(num, sequence):
    m = (len(sequence) - 1)//2 - num//2
    return sequence[m:m+num]


test_list = [1, 2, 3, 4, 5, 6, 7]
test_num = 3
print(get_middle(test_num, test_list))
[3, 4, 5]
代码:

def get_middle(num, sequence):
    m = (len(sequence) - 1)//2 - num//2
    return sequence[m:m+num]


test_list = [1, 2, 3, 4, 5, 6, 7]
test_num = 3
print(get_middle(test_num, test_list))
[3, 4, 5]
输出:

def get_middle(num, sequence):
    m = (len(sequence) - 1)//2 - num//2
    return sequence[m:m+num]


test_list = [1, 2, 3, 4, 5, 6, 7]
test_num = 3
print(get_middle(test_num, test_list))
[3, 4, 5]

您对
[1,2,3,4,5,6]
的预期输出是什么<代码>[3,4,5]或
[2,3,4]
?@donkopotamus预期输出为
[3,4,5]
。您对
[1,2,3,4,5,6]
的预期输出是什么<代码>[3,4,5]或
[2,3,4]
?@donkopotamus预期输出为
[3,4,5]