在 Python 中将列表分成两半
Split a list in half in Python
将列表分成两半:
- 使用列表切片并将
stop
索引设置为列表的长度 floor 除以 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
并选择列表中的第二个项目。