📜  Python|按特定值将列表拆分为列表

📅  最后修改于: 2022-05-13 01:54:41.868000             🧑  作者: Mango

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]]