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

如何修改Python代码实现嵌套列表间的字符串重复项查找

问题描述

现有Python代码仅能查找两个嵌套列表(cases、cases1)中重复的子列表,但实际需求是找出这两个嵌套列表中重复的字符串,并按指定格式输出。

当前代码:

# Getting inputs from users
n = input()  # number of test cases

cases = []
cases1 = []

for case in range(int(n)):
    inputs = input()
    cases.append([str(x) for x in input().split()])  # n distinct space-separated strings
    cases1.append([str(y) for y in input().split()])  # n distinct space-separated strings

# finding the duplicates
for x in cases:
    total = 0
    if x in cases1:
        total += 1
        print(total, x)
    else:
        print(0)

当前程序输出(最后两行):

1 ['mouse', 'cat']
0

期望输出(最后两行):

2, mouse, cat
2, elephant, tiger 
修改思路
  • 移除冗余输入读取:原代码中inputs = input()是多余的,会导致少读一行有效输入,直接删除即可。
  • 按测试用例求字符串交集:对每组对应的cases[i]和cases1[i],将子列表转为集合,利用集合的交集操作快速定位重复字符串(集合自动去重,交集操作效率更高)。
  • 匹配期望格式输出:统计交集的长度(即重复字符串的数量),将数量、字符串用逗号分隔输出,严格对齐期望格式。
修改后的代码
# 获取测试用例数量
n = int(input())

cases = []
cases1 = []

for _ in range(n):
    # 读取当前测试用例的两组字符串
    group1 = input().split()
    group2 = input().split()
    cases.append(group1)
    cases1.append(group2)

# 遍历每个测试用例,找出重复字符串
for i in range(n):
    # 转为集合求交集
    common_strings = set(cases[i]) & set(cases1[i])
    # 重复数量为交集的长度
    count = len(common_strings)
    # 按期望格式输出
    print(f"{count}, {', '.join(common_strings)}")

关键调整说明

  1. 直接将输入的测试用例数量转为整数,避免后续重复类型转换。
  2. 删除冗余的inputs = input(),确保正确读取每组测试用例的两行输入数据。
  3. 用集合交集替代子列表匹配,精准定位两组字符串中的重复项,符合实际需求。
  4. 使用f-string格式化输出,严格匹配期望的「数量, 字符串1, 字符串2...」格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:00:22