【发布时间】:2017-01-09 15:29:42
【问题描述】:
我正在尝试将字符串列表拆分为包含这些字符串的长度不均匀的元组列表,每个元组都包含最初用空白字符串分隔的字符串。基本上我需要可以应用于列表的参数化拆分。如果我的初始列表如下所示:
init = ['a', 'b', '', 'c', 'd e', 'fgh', '', 'ij', '', '', 'k', 'l', '']
此列表的最后一个元素始终是结束 ''。可以有连续的''s,应被视为单曲。
我需要的结果是:
end = [('a', 'b'), ('c', 'd e', 'fgh'), ('ij',), ('k', 'l')]
我已经有丑陋的代码来完成这项工作,一旦列表完全弹出,就会超出范围:
end = []
while init[-1] == u'':
init.pop()
l = []
while init[-1] != u'':
l.append(init.pop())
end.append(tuple(l))
我想使用推导式,但是在尝试解包参数列表、反转自引用列表、使用deque 队列和各种代码异味后未成功,我现在怀疑寻找(嵌套) 理解解决方案?
【问题讨论】:
标签: python python-2.7 list list-comprehension itertools