2011-03-22 100 views
0

我有10个列表,其中有四个元素,每个列表都由大列表中的选项卡分隔。我该如何删除标签,将各个元素分离到各自的列表中,所有元素都列在一个大列表中?从列表中删除选项卡

+1

标签?你可以发布你的代码吗? – 2011-03-22 06:04:30

回答

0

我完全不理解这个问题,所以我会做出如下假设。请让我知道他们是否正确。

你输入的形式为:

a = [["test\tinput"], ["test1\tinput1"]] # 10 elements. 

下面的代码将创建一个列表[ '测试', '输入', 'TEST1', '输入1']

reduce(lambda x,y: x+y, [x[0].split('\t') for x in a]) 
+0

我猜他想要'[['test','input'],['test1','input1']]'结果:“让元素在各自的列表中分开” – 2011-03-22 06:09:40

1

要拆分一个列表,使用列表理解:

[x.split("\t") for x in list_with_tabbed_elements] 

现在,你需要为你的名单列表中的每个元素做到这一点。你可以使用另一个列表内涵,但我个人不喜欢嵌套列表内涵,所以我建议使用地图位置:

map(lambda l: [x.split('\t') for x in l], list_of_lists) 
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']] 
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