如何将列表与交替观察值合并为一个列表

rel*_*ima 1 python csv string loops list

我有很多列表,与气象站提供的列表完全相同.

但是,我如何将两个日常观察"合并"为一个?(第一组日常观察中可用的记录永远不会出现在第二组上).

['82294', '04/03/2002', '0000', '', '30.9', '', '', '', '26.1', '93', '1.554', '']
['82294', '04/03/2002', '1200', '24', '', '22', '', '', '', '', '', '']
['82294', '05/03/2002', '0000', '', '29.9', '', '', '', '25.62', '92.5', '0.863333', '']
['82294', '05/03/2002', '1200', '11', '', '23.2', '', '', '', '', '', '']
['82294', '06/03/2002', '0000', '', '31.6', '', '', '', '27.12', '87.5', '1.381333', '']
['82294', '06/03/2002', '1200', '0.2', '', '22.6', '', '', '', '', '', '']
['82294', '07/03/2002', '0000', '', '32.2', '', '', '', '27.6', '90.75', '1.899333', '']
['82294', '07/03/2002', '1200', '2', '', '24.6', '', '', '', '', '', '']
['82294', '08/03/2002', '0000', '', '29.3', '', '', '', '25.66', '95.25', '1.036', '']
['82294', '08/03/2002', '1200', '21', '', '24.4', '', '', '', '', '', '']
['82294', '09/03/2002', '0000', '', '31.5', '', '', '', '26.26', '95.75', '1.899333', '']
['82294', '09/03/2002', '1200', '23', '', '22.8', '', '', '', '', '', '']
['82294', '10/03/2002', '0000', '', '31.7', '', '', '', '26.94', '90.5', '2.072', '']
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 6

您可以使用成对迭代对对进行分组,然后zip()逐项对组进行分组,并使用它or来选择一个非空值:

[[x or y for x, y in zip(item1, item2)] 
 for item1, item2 in zip(data[0::2], data[1::2])]
Run Code Online (Sandbox Code Playgroud)

data您的输入列表列表在哪里.

生产:

[
    ['82294', '04/03/2002', '0000', '24', '30.9', '22', '', '', '26.1', '93', '1.554', ''], 
    ['82294', '05/03/2002', '0000', '11', '29.9', '23.2', '', '', '25.62', '92.5', '0.863333', ''], 
    ['82294', '06/03/2002', '0000', '0.2', '31.6', '22.6', '', '', '27.12', '87.5', '1.381333', ''], 
    ['82294', '07/03/2002', '0000', '2', '32.2', '24.6', '', '', '27.6', '90.75', '1.899333', ''], 
    ['82294', '08/03/2002', '0000', '21', '29.3', '24.4', '', '', '25.66', '95.25', '1.036', ''], 
    ['82294', '09/03/2002', '0000', '23', '31.5', '22.8', '', '', '26.26', '95.75', '1.899333', '']
]
Run Code Online (Sandbox Code Playgroud)

您可以另外考虑合并,00001200以更好的方式0000选择现在的原因.