如何通过与值连续分组将列表 A 转换为列表 B?
这意味着'timeStart_timeEnd_itemName'如果第一个timeEnd等于下一个循环timeStart和itemName是相同的然后追加到一个子列表组,如列表B?
输入
A = ['1070914_1070915_itemA',
'1070915_1070921_itemA',
'1070921_1070928_itemA',
'1071005_1071008_itemA',
'1071115_1071223_itemA',
'1071223_1071224_itemA',
'1071225_1071229_itemB']
结果B = [['1070914_1070915_itemA',
'1070915_1070921_itemA',
'1070921_1070928_itemA'],
['1071005_1071008_itemA'],
['1071115_1071223_itemA',
'1071223_1071224_itemA'],
['1071225_1071229_itemB']
]
最佳答案
这是基于您共享的示例的解决方案,我假设:
这是实现此目的的示例代码:
my_list = [
'1070914_1070915_itemA',
'1070915_1070921_itemA',
'1070921_1070928_itemA',
'1071005_1071008_itemA',
'1071115_1071223_itemA',
'1071223_1071224_itemA',
'1071225_1071229_itemB'
]
new_list = [[my_list[0]]]
for a, b in zip(my_list, my_list[1:]):
a_tup, b_tup = a.split('_'), b.split('_')
if a_tup[1] != b_tup[0]:
new_list.append([])
new_list[-1].append(b)
哪里new_list
会给你返回:[[
'1070914_1070915_itemA',
'1070915_1070921_itemA',
'1070921_1070928_itemA'
],[
'1071005_1071008_itemA'
],[
'1071115_1071223_itemA',
'1071223_1071224_itemA'
],[
'1071225_1071229_itemB'
]]
关于python - python中的分组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67354160/