我有以下清单
List=[
('G1', 'CFS', 'FCL', 'R1'),
('G3', 'LOOSEFREIGHT', 'MIXEDLCL', 'R9'),
('G4', 'CFS', 'FCL', 'R10'),
('G2', 'LOOSEFREIGHT', 'LCL', 'R4'),
('G1', 'CFS', 'FCL', 'R2'),
('G2', 'LOOSEFREIGHT', 'LCL', 'R5'),
]
现在我想首先通过索引[1](即CFS和LOOSEFREIGHT)将List的这些元素分组在一起,对于那些为LOOSEFREIGHT分组在一起的元素,我想基于索引[2](即LCL或MIXEDLCL)进一步将它们划分为不同的组。你知道吗
所以本质上我想把它们分组到不同的列表中,我的解决方案应该是
New_List=[
[
('G1', 'CFS', 'FCL', 'R1'),
('G1', 'CFS', 'FCL', 'R2'),
('G4', 'CFS', 'FCL', 'R10')
],
[
('G2', 'LOOSEFREIGHT', 'LCL', 'R4'),
('G2', 'LOOSEFREIGHT', 'LCL', 'R5')
],
[
('G3', 'LOOSEFREIGHT', 'MIXEDLCL', 'R9')
],
]
我该怎么做?你知道吗
我设法根据索引[1]将它们划分为不同的列表,但是我无法根据索引[2]进一步划分它们
感谢您的帮助。你知道吗
这里是一个使用dict的答案,其中键是索引[1](ex-'CFS'),其值是另一个dict,其中键是索引[2](ex-'FCL')。本例创建结构,然后使用for循环打印出所需的排序顺序。这比亚当的答案更有力,因为他的答案是专为某些价值观而构建的:
因此,当您打印排序的\u值时,您会得到:
如果这是一个一次性的任务列表,那么理解可能是最简单的解决方案:
如果您需要一个更一般的例子,您不必预先知道可能的组的数量,您可以使用itertools.groupby这样的方法:
结果:
我会做一个自定义排序例程:
相关问题 更多 >
编程相关推荐