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

合并不同长度列表:基于分数匹配评论与评分

解决方案

首先明确核心逻辑:list1中每条评论的前缀标识(比如1在1 Liked里),和list2中评分对应的标识(比如score 1里的1)是匹配关联的,我们需要按这个标识分组,把对应评分和评论组合到一起。

步骤1:预处理评论列表,按标识分组

先把list1的评论按标识归类,同时区分Liked/Disliked类型,确保Liked优先保留:

list1 = ["1 Liked: Great product", "1 Disliked: Slow shipping", "2 Disliked: Poor quality", "3 Liked: Excellent service"]
comment_groups = {}

for comment in list1:
    # 拆分标识、评论类型、内容三部分
    parts = comment.split(" ", 2)
    item_id = parts[0]
    comment_type = parts[1]
    content = parts[2]
    
    # 初始化当前标识的分组
    if item_id not in comment_groups:
        comment_groups[item_id] = {"liked": None, "disliked": None}
    
    # 存入对应类型的评论内容
    if comment_type == "Liked":
        comment_groups[item_id]["liked"] = content
    elif comment_type == "Disliked":
        comment_groups[item_id]["disliked"] = content

步骤2:遍历评分列表,匹配对应评论组合

处理list2,提取每个评分的标识,从分组中取出评论并按要求组合:

list2 = ["score 1: 4.5", "score 2: 2.0", "score 3: 5.0"]
result = []

for score_item in list2:
    # 拆分评分的标识和分数值
    score_parts = score_item.split(" ", 2)
    item_id = score_parts[1]
    score = score_parts[2]
    
    # 获取当前标识对应的评论组
    group = comment_groups.get(item_id, {})
    combined_comments = []
    
    # 优先添加Liked评论(如果存在)
    if group.get("liked"):
        combined_comments.append(f"Liked: {group['liked']}")
    # 添加Disliked评论(如果存在)
    if group.get("disliked"):
        combined_comments.append(f"Disliked: {group['disliked']}")
    
    # 组合评分与评论,存入结果列表
    result.append(f"Score {score} | Comments: {' | '.join(combined_comments)}")

示例输出

运行后result的内容为:

[
    "Score 4.5 | Comments: Liked: Great product | Disliked: Slow shipping",
    "Score 2.0 | Comments: Disliked: Poor quality",
    "Score 5.0 | Comments: Liked: Excellent service"
]

为什么zip不行?

zip是按列表索引一一对应,但你的两个列表长度不同,且评论与评分是按标识关联而非索引顺序关联,所以用字典分组匹配才是正确思路,zip无法处理这种非索引对应的关联场景。

内容的提问来源于stack exchange,提问作者Coding with noob

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:34:49