如何检测二维列表各列重复元素并修改Python代码实现对应功能
解决方案
完整实现代码
import random A = ['a', 'b', 'c', 'd', 'e'] # 初始化二维列表,初始带一个空行用于存储第一行元素 B = [[]] count = 1 while True: current_char = random.choice(A) # 最后一行满5个元素就新增空行 if len(B[-1]) == 5: B.append([]) B[-1].append(current_char) print(B) # 逐列检测重复 for col_idx in range(5): # 收集当前列所有有效元素 col_chars = [] for row in B: if len(row) > col_idx: col_chars.append(row[col_idx]) # 统计字符出现次数 char_cnt = {} for c in col_chars: char_cnt[c] = char_cnt.get(c, 0) + 1 # 筛选重复字符 duplicates = [c for c, cnt in char_cnt.items() if cnt >= 2] if duplicates: print(f"Warning, {', '.join(duplicates)} duplicate in {col_idx + 1} column") if count >= 10: break count += 1
修改说明
- 调整列表B的结构为嵌套二维列表,每次添加元素前判断最后一行是否已满5个元素,满了就新增空行再写入,自动实现每行固定5个元素的存储格式。
- 新增列重复检测逻辑:遍历1-5共5列,逐列收集所有行对应位置的有效元素,统计每个字符的出现次数,只要存在出现次数≥2的字符就按要求输出对应警告,列号从1开始计数符合常规表述习惯。
- 修复了原代码中
Waring的拼写错误为标准的Warning。
内容的提问来源于stack exchange,提问作者duckchun
相关产品推荐
相关产品推荐

