You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表元素分组:按#分割前两段相同规则分组

解决方案:按前缀分组合并列表

我来帮你实现这个需求,思路很清晰——用字典来按元素的前缀分组,再根据组内元素数量生成最终列表,直接上代码和解释:

完整代码实现

list_1 = ['PERSONNE#FAVE#12','PERSONNE#DATE#12','PERSONNE#KIAL#12']
list_2 = ['PERSONNE#FAVE#11','PERSONNE#DATE#10']

# 合并两个输入列表
sortie_list = list_1 + list_2

# 用字典按前缀分组:键为分割后的前两段,值为对应元素的列表
group_dict = {}
for item in sortie_list:
    # 提取元素的前两段作为分组键
    prefix_key = '#'.join(item.split('#')[:2])
    # 将元素添加到对应分组中
    if prefix_key not in group_dict:
        group_dict[prefix_key] = []
    group_dict[prefix_key].append(item)

# 生成最终的结果列表
out_list = []
for group in group_dict.values():
    if len(group) == 2:
        # 有匹配项的组,直接作为子列表加入
        out_list.append(group)
    else:
        # 无匹配项的元素,直接加入结果列表
        out_list.append(group[0])

# 打印验证结果
print(out_list)

代码运行结果

运行上述代码后,会输出你预期的结果:

[['PERSONNE#FAVE#12', 'PERSONNE#FAVE#11'], ['PERSONNE#DATE#12', 'PERSONNE#DATE#10'], 'PERSONNE#KIAL#12']

步骤解释

  1. 合并列表:先把list_1和list_2合并成sortie_list,这是后续处理的基础。
  2. 按前缀分组:遍历每个元素,用split('#')分割后取前两段,再用#拼接成分组键,把元素归类到对应键的列表中——这样所有前缀相同的元素会被分到同一组。
  3. 生成结果列表:遍历分组字典的每个值,如果组内有2个元素(说明两个列表里都有对应前缀的元素),就把这个组作为子列表加入out_list;如果只有1个元素(说明没有匹配项),就直接把这个元素加入out_list。

内容的提问来源于stack exchange,提问作者blackcat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 17:36:11