在2个值之间分割python列表

时间:2020-03-31 14:13:35

标签: python list

[0, 100, 7 27岁 34, 40岁 41, 48, 58 65岁 75, 78, 79, 96, 126, 127, 0, 0, 2, 45 54 56 57, 59, 66, 67, 82, 86, 102, 124, 133, 0, 0, 35岁 39, 52, 53 60 61, 80 81, 83, 87, 97, 98, 101, 109, 0, 0, 15 28, 29, 30岁 31, 32, 33, 37, 38, 49, 50 51, 71, 95, 0, 0, 3, 16 22 23 44 72, 73, 74, 90, 110, 131, 0, 0, 10 11 18岁 19 36岁 55岁 89, 93, 94, 108, 113, 114, 0, 0, 1, 5 6, 9, 12 17 24 43 64, 77, 85, 88, 91, 92, 111, 112, 130, 0, 0, 13 20 42 62, 68, 84, 99, 104, 116, 119, 125, 128, 129, 132, 0, 0, 8, 14 26, 63, 69, 70 103, 105, 123, 0, 0, 4, 21岁 25岁 46, 47, 106, 107, 115, 117, 118, 120 121, 122, 0, 0, 76, 0]

我有这个值列表,我想在每两个零之间进行分割。

所以我的列表如下:

[0,100,7,27,34,40,41,48,58,65,75,78,79,96,126,127,0],[0,2,45,54,56, 57,59,66,67,82,86,102,124,133,0],[0,35,39,52,53,60,61,80,81,83,87,97,98,101, 109,0],[0,15,28,29,30,31,32,33,37,38,49,50,51,71,95,0],[0,3,16,22,23, 44,72,73,74,90,110,131,0] [0,10,11,18,19,36,55,89,93,94,108,113,114,0],[0,1 ,5、6、9、12、17、24、43、64、77、85、88、91、92、111、112、130、0],[0、13、20、42、62、68、84 ,99,104,116,119,125,128,129,132,0],[0,8,14,26,63,69,70,103,105,123,0],[0,4,21 ,25、46、47、106、107、115、117、118、120、121、122、0] [0、76、0]

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

您可以使用带有内置函数for的简单zip循环:

# l is your list
result = [[l[0]]]
for i, j in  zip(l[1:], l):
    if i == 0 == j:
        result.append([i])
    else:
        result[-1].append(i)
result

输出:

[[0, 100, 7, 27, 34, 40, 41, 48, 58, 65, 75, 78, 79, 96, 126, 127, 0],
 [0, 2, 45, 54, 56, 57, 59, 66, 67, 82, 86, 102, 124, 133, 0],
 [0, 35, 39, 52, 53, 60, 61, 80, 81, 83, 87, 97, 98, 101, 109, 0],
 [0, 15, 28, 29, 30, 31, 32, 33, 37, 38, 49, 50, 51, 71, 95, 0],
 [0, 3, 16, 22, 23, 44, 72, 73, 74, 90, 110, 131, 0],
 [0, 10, 11, 18, 19, 36, 55, 89, 93, 94, 108, 113, 114, 0],
 [0, 1, 5, 6, 9, 12, 17, 24, 43, 64, 77, 85, 88, 91, 92, 111, 112, 130, 0],
 [0, 13, 20, 42, 62, 68, 84, 99, 104, 116, 119, 125, 128, 129, 132, 0],
 [0, 8, 14, 26, 63, 69, 70, 103, 105, 123, 0],
 [0, 4, 21, 25, 46, 47, 106, 107, 115, 117, 118, 120, 121, 122, 0],
 [0, 76, 0]]

答案 1 :(得分:0)

我认为最简单的方法是这样做:

outputList=[]
start = 0

for i in range(len(myList) - 1):
    curr = myList[i]
    next = myList[i+1]
    if curr == 0 and next == 0:
        outputList.append(myList[start:i+1]
        start = i+1

我认为那样就可以了,如果可行的话,让我现在! :D