在 Python 中将列表分成两半

在 Python 中将列表分成两半

Split a list in half in Python

将列表分成两半:

  1. 使用列表切片并将stop索引设置为列表的长度 floor 除以 2 以获得前半部分。
  2. 使用列表切片,start索引设置为列表的长度 floor 除以2得到后半部分。
主程序
my_list = [2, 4, 6, 8] first_half = my_list[:len(my_list)//2] print(first_half) # 👉️ [2, 4] second_half = my_list[len(my_list)//2:] print(second_half) # 👉️ [6, 8]

len()函数返回对象的长度(项目数)。

主程序
my_list = [2, 4, 6, 8] print(len(my_list)) # 👉️ 4

为了获得列表的前半部分,我们使用列表切片并将stop索引设置为列表的长度 floor 除以2

列表切片的语法是my_list[start:stop:step].

start索引是包含的,索引stop是排他的(最多,但不包括)。
主程序
my_list = [2, 4, 6, 8] first_half = my_list[:len(my_list)//2] print(first_half) # 👉️ [2, 4]

我们使用 floor 除法从除法中得到一个整数结果。

整数除法/产生一个浮点数,而//整数除法产生一个整数。

floor()使用 floor 除法运算符的结果是对结果应用函数的数学除法。

主程序
my_num = 50 print(my_num / 5) # 👉️ 10.0 (float) print(my_num // 5) # 👉️ 10 (int)

列表的长度除以2等于 2,因此第一个切片选择前 2 个元素。

主程序
my_list = [2, 4, 6, 8] first_half = my_list[:len(my_list)//2] print(first_half) # 👉️ [2, 4] second_half = my_list[len(my_list)//2:] print(second_half) # 👉️ [6, 8]

索引是独占的stop(直到,但不包括),所以第一个切片从 index 开始,0一直到,但不包括 index 2

下半部分从索引开始2,一直到列表的末尾。

如果您必须经常这样做,请将逻辑提取到可重用的函数中。

主程序
def split_in_half(l): length = len(l) return ( l[:length//2], l[length//2:] ) my_list = [2, 4, 6, 8] first, second = split_in_half(my_list) print(first) # 👉️ [2, 4] print(second) # 👉️ [6, 8]

该函数接受一个列表,将其分成两半并返回包含两半的元组。

将列表分成两半的另一种方法是step在切片列表时使用该值。

主程序
my_list = [2, 4, 6, 8] first_half = my_list[::2] print(first_half) # 👉️ [2, 6] second_half = my_list[1::2] print(second_half) # 👉️ [4, 8]

切片my_list[::2]从索引处开始0并选择列表中的第二个项目。

切片my_list[1::2]从索引处开始1并选择列表中的第二个项目。

发表评论