Python|按特定值将列表拆分为列表
如今,列表的拆分非常普遍,并且可以有许多相同的应用程序和用例。随之而来的是变化。一种这样的变体可以按特定值拆分列表。让我们讨论一种可以执行列表拆分的特定方式。
方法:使用列表理解 + zip() + slicing + enumerate()
这个问题可以分两部分解决,第一部分我们得到索引列表,必须使用枚举函数执行拆分。然后我们可以使用 zip 和列表切片根据索引连接值。
# Python3 code to demonstrate
# Split list into lists by particular value
# Using list comprehension + zip() + slicing + enumerate()
# initializing list
test_list = [1, 4, 5, 6, 4, 5, 6, 5, 4]
# printing original list
print("The original list : " + str(test_list))
# using list comprehension + zip() + slicing + enumerate()
# Split list into lists by particular value
size = len(test_list)
idx_list = [idx + 1 for idx, val in
enumerate(test_list) if val == 5]
res = [test_list[i: j] for i, j in
zip([0] + idx_list, idx_list +
([size] if idx_list[-1] != size else []))]
# print result
print("The list after splitting by a value : " + str(res))
输出 :
The original list : [1, 4, 5, 6, 4, 5, 6, 5, 4]
The list after splitting by a value : [[1, 4, 5], [6, 4, 5], [6, 5], [4]]