我正在尝试将特定字符串提取到单独的列表中。
如果我的输入格式为[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
?
答案 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]
等。