从列表列表中删除选项卡

时间:2011-03-22 05:59:04

标签: python list loops for-loop

我有10个列表,其中包含四个元素,每个元素由一个大列表中的制表符分隔。如何删除选项卡,将元素分隔在各自的列表中,所有这些都在一个大的列表中?

4 个答案:

答案 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])