使用复杂的列表结构

时间:2015-08-17 14:57:14

标签: python list loops

我有一个数据集,我正在尝试解析并从中创建一个新列表。样本如下所示:

(089964, 64509, 4890, 517, [
innerArray(a=789454, b=789454, c=56, o=1, d=66, e=63), 
innerArray(a=789454, b=789454, c=56, o=1, d=66, e=63), 
innerArray(a=788878, b=768910, c=112, o=2, d=66, e=63), 
innerArray(a=788878, b=928718, c=2464, o=44, d=66, e=63), 
innerArray(a=789454, b=789454, c=56, o=1, d=66, e=63)])
(089967, 64534, 4825, 517, [
innerArray(a=567454, b=789454, c=56, o=1, d=66, e=63), 
innerArray(a=567454, b=789454, c=56, o=1, d=66, e=63), 
innerArray(a=876878, b=768910, c=112, o=2, d=66, e=63), 
innerArray(a=876878, b=928718, c=2464, o=44, d=66, e=63), 
innerArray(a=875454, b=789454, c=56, o=1, d=66, e=63)])

我正在使用一个非常简单的代码来提取我需要的内容:

for i in tempFullList:
    print i[0],i[1],i[2],i[3],i[4]

其中089964, 64509, 4890, 517分别为i[0],i[1],i[2],i[3],整个innerArrayi[4].

我真正期待的是一个列表,每行包含i [0],i [1],i [2],i [3]以及innerarray的每个元素。例如:

(089964, 64509, 4890, 517,789454,789454,56,1,66,63), ...

InnerArray是解析日志文件时创建的namedtuple的类型名称。 我正在研究一个可以迭代所有innerArray的代码(大小不固定),并且会得到一些帮助。

1 个答案:

答案 0 :(得分:0)

假设innerArray是一个类,并且访问它的元素就像ia.aia.b等,其中iainnerArray个对象,这里&#39 ;你可以做的事情(xs是你的整个元组):

 result = []
 common = xs[:4] # The first 4 elements, which will be common
 xs = xs[4:]     # The list of innerArray elements
 for x in xs:
     result.append(common[:]) # Makes a copy of the common list
     result[-1].extend([x.a, x.b, x.c, x.o, x.d, x.e]) # Or however you want to get the elements out of the "innerArray"; -1 selects the last inserted list.

如果您尽可能多地向我们提供有关代码的详细信息,例如innerArray,那么人们就可以更轻松地回答您的问题。

编辑:刚刚注意到你有多个元组,如xs,在这种情况下,只需迭代元组列表,对于每个元组,执行上述操作。