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