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

如何实现根据二维列表中字符串重复出现提取对应数值?

解决方法

没问题,我来帮你搞定这个需求!核心思路就是先找出那些重复出现的字符串,再把对应子列表里的数值提取出来。下面是具体的Python实现方案:

代码示例

from collections import defaultdict

# 先修正原列表的语法错误(补全字符串引号)
table = [[3, 'AVENGERS', 'PACIFIC'],
         [1, 'A WALK,DRAGONBALL'],
         [2, 'A WALK,DRAGONBALL'],
         [5, 'A WALK,DRAGONBALL'],
         [6, 'JAMES BOND,MISSION'],
         [7, 'JAMES BOND,MISSION']]

# 第一步:统计每个字符串的出现次数
str_occurrences = defaultdict(int)
for row in table:
    # 遍历子列表中除第一个数值外的所有字符串
    for string in row[1:]:
        str_occurrences[string] += 1

# 第二步:筛选出重复出现的字符串
repeated_strings = {s for s, count in str_occurrences.items() if count > 1}

# 第三步:提取对应数值
target_numbers = []
for row in table:
    # 检查当前子列表是否包含重复字符串
    if any(s in repeated_strings for s in row[1:]):
        target_numbers.append(row[0])

print(target_numbers)  # 输出结果:[1, 2, 5, 6, 7]

步骤解释

  • 统计次数:用defaultdict轻松计数每个字符串的出现次数,遍历每个子列表时只关注数值后面的字符串元素。
  • 筛选重复字符串:从统计结果里挑出出现次数大于1的字符串,这些就是我们要追踪的目标。
  • 提取数值:再次遍历原列表,只要子列表里包含任何一个重复字符串,就把该子列表的第一个数值元素收集起来。

这个方案还兼容像第一个子列表那样包含多个字符串的情况,哪怕其中有一个重复字符串,也会正确提取对应的数值哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:25:36