将项目提取到单独的列表

时间:2014-08-22 21:11:37

标签: python python-2.7

我正在尝试将特定字符串提取到单独的列表中。

如果我的输入格式为[a1, a2, a3] [b1, b2, b3] [c1, c2, c3, c4],我的输出应该有一个列表,其中只包含每个集合中的第一个元素,另一个列表包含列表中剩余的元素。

output_list_1 = [[a1] [b1] [c1]]
output_list_2 = [[a2, a3] [b2, b3] [c2,c3,c4]]

我能够用

提取output_list_1
output_list_1 = re.findall( r'\[(?=([a-z0-9.]+))',str(input_list))

如何提取output_list_2

2 个答案:

答案 0 :(得分:1)

>>> q=[[1,2,3],[1,2,3],[1,2,3]]
>>> out = [[list[0] for list in q],[list[1:] for list in q]]

答案 1 :(得分:1)

不要将input_list转换为字符串

input_list = [[a1, a2, a3] [b1, b2, b3] [c1, c2, c3, c4]]
output_list1 = [sublist[0] for sublist in input_list]
output_list2 = [sublist[1:] for sublist in input_list]

这可能是更广泛意义上做你想做的事情的更好方法

output_list = [(sublist[0], sublist[1:]) for sublist in q]

在这种情况下,迭代output_list将如下所示

for first, rest b in output_list:
    print first, rest

这会打印a1, [a2, a3]等。