Python 如何将具有交替观察的列表合并为单个列表

Python 如何将具有交替观察的列表合并为单个列表,python,string,list,loops,csv,Python,String,List,Loops,Csv,我有许多与下面的列表完全相同的列表,由气象站提供 但是,如何将两个每日观察“合并”为一个?(第一组每日观察的可用记录在第二组中从未出现) 您可以使用对进行分组,然后逐项分组,并使用或选择一个非空值: [[x or y for x, y in zip(item1, item2)] for item1, item2 in zip(data[0::2], data[1::2])] 其中,data是列表的输入列表 产生: [ ['82294', '04/03/2002', '0000',

我有许多与下面的列表完全相同的列表,由气象站提供

但是,如何将两个每日观察“合并”为一个?(第一组每日观察的可用记录在第二组中从未出现)

您可以使用对进行分组,然后逐项分组,并使用
选择一个非空值:

[[x or y for x, y in zip(item1, item2)] 
 for item1, item2 in zip(data[0::2], data[1::2])]
其中,
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', '']
]
您还可以考虑以更好的方式合并
0000
1200
,因为现在将选择
0000

您可以使用对进行分组,然后逐项分组,并使用
选择一个非空值:

[[x or y for x, y in zip(item1, item2)] 
 for item1, item2 in zip(data[0::2], data[1::2])]
其中,
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', '']
]

您还可以考虑以更好的方式合并
0000
1200
,因为现在将选择
0000

可能类似于:

list_1=['82294', '04/03/2002', '0000', '', '30.9', '', '', '', '26.1', '93', '1.554', '']
list_2=['82294', '04/03/2002', '1200', '24', '', '22', '', '', '', '', '', '']
merged_list= list(set(list_1+list_2))
更新

merged_list = list([x for x in list_1 if x ])
merged_list.extend(x for x in list_2 if x)

也许是这样的:

list_1=['82294', '04/03/2002', '0000', '', '30.9', '', '', '', '26.1', '93', '1.554', '']
list_2=['82294', '04/03/2002', '1200', '24', '', '22', '', '', '', '', '', '']
merged_list= list(set(list_1+list_2))
更新

merged_list = list([x for x in list_1 if x ])
merged_list.extend(x for x in list_2 if x)
您还可以使用及其+:

印刷品:

[
    ['82294', '04/03/2002', '1200', '24', '30.9', '22', '', '', '26.1', '93', '1.554', ''], 
    ['82294', '05/03/2002', '1200', '11', '29.9', '23.2', '', '', '25.62', '92.5', '0.863333', ''], 
    ['82294', '06/03/2002', '1200', '0.2', '31.6', '22.6', '', '', '27.12', '87.5', '1.381333', ''], 
    ['82294', '07/03/2002', '1200', '2', '32.2', '24.6', '', '', '27.6', '90.75', '1.899333', ''], 
    ['82294', '08/03/2002', '1200', '21', '29.3', '24.4', '', '', '25.66', '95.25', '1.036', ''], 
    ['82294', '09/03/2002', '1200', '23', '31.5', '22.8', '', '', '26.26', '95.75', '1.899333', ''], 
    ['82294', '10/03/2002', '0000', '', '31.7', '', '', '', '26.94', '90.5', '2.072', '']
]
在这里,我们可以合并已分组的项—空字符串和非空字符串的最大值始终是非空字符串。我觉得应该有一个更好的(可以说更合适的)合并功能。

您也可以使用及其+:

印刷品:

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

在这里,我们可以合并已分组的项—空字符串和非空字符串的最大值始终是非空字符串。我觉得应该有一个更好的(可以说更合适的)合并功能。

在这种情况下,您如何定义“合并”?举个例子确实会有帮助。合并这些列表的方法有很多种。您应该提供一个结果在这种情况下,您如何定义“合并”?举个例子确实会有帮助。合并这些列表的方法有很多种。您应该提供一个outcomeThis,它将丢失数据;在合并过程中,它会忽略排序和合法副本。@chepner同意后者,但没有人询问前者。配对测量值永远不会都是非空的这一事实暗示了排序。这将丢失数据;在合并过程中,它会忽略顺序和合法副本。@chepner同意后者,但没有人询问前者。成对测量值从不都是非空的这一事实暗示了顺序。