我有两个列表,我想找到一种方法将它们连接在一起(我不确定确切的术语是这样做的)压缩它们。在
在列表一中,我有一系列tif文件:
list1=['LT50300281984137PAC00_sr_band1.tif',
,'LT50300281984137PAC00_sr_band2.tif'
'LT50300281984137PAC00_sr_band3.tif','LT50300281994260XXX03_sr_band1.tif',
'LT50300281994260XXX03_sr_band2.tif',
'LT50300281994260XXX03_sr_band3.tif']
在列表2中,我有两个文件:
^{pr2}$我想将列表1中以LT50300281984137PAC00
开头的文件压缩到以相同方式开始的列表2中的文件,以LT50300281994260XXX03
开头的文件也是如此
我尝试过的代码是:
ziplist=zip(sorted(list1),sorted(list2)
但这会带来:
[('LT50300281984137PAC00_sr_band1', 'LT50300281984137PAC00_mask.tif'), ('LT50300281984137PAC00_sr_band2', 'LT50300281994260XXX03_mask.tif')]
我想退回这个:
[('LT50300281984137PAC00_sr_band1',LT50300281984137PAC00_sr_band2,LT50300281984137PAC00_sr_band3, 'LT50300281984137PAC00_mask.tif'), ('LT50300281994260XXX03_sr_band1.tif', 'LT50300281994260XXX03_sr_band2.tif','LT50300281994260XXX03_sr_band3.tif','LT50300281994260XXX03_mask.tif')]
也可以使用regex来完成。在
输出
^{pr2}$您可以使用列表理解和内置函数
filter
您可以使用itertools.groupby:
结果:
^{pr2}$其思想是根据每个文件名(
extract_key
)的第一部分对两个列表的并集进行排序。然后使用groupby
创建第一部分相同的组。在相关问题 更多 >
编程相关推荐