Python 3.x 将给定列表转换为嵌套列表-Python3.x

Python 3.x 将给定列表转换为嵌套列表-Python3.x,python-3.x,Python 3.x,我有以下格式的列表: input = [['Monday', 'Tuesday', 'Wednesday', '', '1', '2', 'Black', '']] 我想将其转换为如下所示的嵌套列表:(请参阅,嵌套列表在null元素处中断) 有办法做到这一点吗?我努力想了想,但没能想出一个解决办法 更多示例: input = [['', 'word1', 'word2', '', '1', '2', 'orange', '']] 提前感谢 这应该行得通: import itertools i

我有以下格式的列表:

input = [['Monday', 'Tuesday', 'Wednesday', '', '1', '2', 'Black', '']]
我想将其转换为如下所示的嵌套列表:(请参阅,嵌套列表在null元素处中断)

有办法做到这一点吗?我努力想了想,但没能想出一个解决办法

更多示例:

input = [['', 'word1', 'word2', '', '1', '2', 'orange', '']]
提前感谢

这应该行得通:

import itertools
input_ = [['Monday', 'Tuesday', 'Wednesday', '', '1', '2', 'Black', '']]
output = [list(g) for item in input_ for k, g in itertools.groupby(item, bool) if k]

更长的解决方案:

input_ = [['Monday', 'Tuesday', 'Wednesday', '', '1', '2', 'Black', '']]
output = []
sublist = []
for item in input_:
    for subitem in item:
        if subitem:
            sublist.append(subitem)
            continue
        if sublist:
            output.append(sublist)
            sublist = []
这应该是可行的:

import itertools
input_ = [['Monday', 'Tuesday', 'Wednesday', '', '1', '2', 'Black', '']]
output = [list(g) for item in input_ for k, g in itertools.groupby(item, bool) if k]

更长的解决方案:

input_ = [['Monday', 'Tuesday', 'Wednesday', '', '1', '2', 'Black', '']]
output = []
sublist = []
for item in input_:
    for subitem in item:
        if subitem:
            sublist.append(subitem)
            continue
        if sublist:
            output.append(sublist)
            sublist = []

以下是一种方法:

x = [['', '', 'word1', 'word2', '', '1', '2', 'word3', '', '']]
output = []
temp = []
for idx, el in enumerate(x[0]):
    if idx == 0 and el == "":
        continue
    if el != '':
        temp.append(el)
    elif temp != []:
        output.append(temp)
        temp = []
输出

[['word1', 'word2'], ['1', '2', 'word3']]

以下是一种方法:

x = [['', '', 'word1', 'word2', '', '1', '2', 'word3', '', '']]
output = []
temp = []
for idx, el in enumerate(x[0]):
    if idx == 0 and el == "":
        continue
    if el != '':
        temp.append(el)
    elif temp != []:
        output.append(temp)
        temp = []
输出

[['word1', 'word2'], ['1', '2', 'word3']]

您的问题是什么?我的问题是我的代码无法处理嵌套列表中的“”元素。您的问题是什么?我的问题是我的代码无法处理嵌套列表中的“”元素。谢谢@Bharel!!谢谢@Bharel!!谢谢@Sebastien D!!谢谢@Sebastien D!!