我有10个列表,其中包含四个元素,每个元素由一个大列表中的制表符分隔。如何删除选项卡,将元素分隔在各自的列表中,所有这些都在一个大的列表中?
答案 0 :(得分:1)
要拆分单个列表,请使用列表解析:
[x.split("\t") for x in list_with_tabbed_elements]
现在,您需要为列表列表中的每个元素执行此操作。你可以使用另一个列表推导,但我个人不喜欢嵌套列表推导,所以我建议在这里使用map:
map(lambda l: [x.split('\t') for x in l], list_of_lists)
答案 1 :(得分:1)
目前尚不清楚原始数据究竟是从问题中看出来的样子,但也许这就是您正在寻找的所有内容?
data = ["alpha\tbravo\tcharlie\tdelta",
"one\ttwo\tthree\tfour"]
new_data = map(lambda x: x.split("\t"), data)
print new_data
...产生了输出:
[['alpha', 'bravo', 'charlie', 'delta'], ['one', 'two', 'three', 'four']]
答案 2 :(得分:1)
由this question提供。这可能有用。
>>> tabbedlist = 'element0\telement1\telement2\telement3'
>>> list = tabbedlist.split('\t')
>>> list
['element0', 'element1', 'element2', 'element3']
这似乎也适用于:tabbedlist = 'element0 element1 element2 element3'
这些空格实际上是制表符,或者至少我的终端将它们渲染为空格。 (发布会压缩空格,对不起)
所以对于你的应用:
tenlists = [
'l0e0\tl0e1\tl0e2',
'l1e0\tl1e2\tl1e3\tl1e4',
'l2e0\tl2e2',
'l3e0\tl3e2\tl3e3\tl3e4\tl3e5',
'l4e0\tl4e2\tl4e3\tl4e4\tl4e5\tl4e6',
'l5e0\tl5e2\tl5e3\tl5e4\tl5e5\tl5e6\tl5e7',
]
largelist = []
for list in tenlists:
largelist.append( list.split('\t') )
print largelist
答案 3 :(得分:0)
我完全不理解这个问题,所以我将做出以下假设。如果他们是正确的,请告诉我。
您的输入格式为:
a = [["test\tinput"], ["test1\tinput1"]] # 10 elements.
以下代码将创建一个列表['test','input','test1','input1']
reduce(lambda x,y: x+y, [x[0].split('\t') for x in a])