如何用for循环简化Python数组中重复元素的检测逻辑?
简化Python数组元素重复检测的实现
你原来的代码靠硬编码索引两两比对,只能处理长度为3的数组,改成for循环后能适配任意长度的数组,代码也更通用简洁。
嵌套for循环实现版本
check = [你的数组元素] # 替换成实际要检测的数组 has_duplicate = False # 遍历所有不重复的元素对 for i in range(len(check)): for j in range(i + 1, len(check)): if check[i] == check[j]: has_duplicate = True break # 找到重复就跳出内层循环 if has_duplicate: break # 确认有重复就跳出外层循环 print('you win!!' if has_duplicate else 'you lost!')
代码说明
- 外层循环逐个取元素索引
i,内层循环从i+1开始,避免重复比较同一组元素(比如i=0,j=1和i=1,j=0) - 一旦找到任意一对相等元素,就标记
has_duplicate为True,立刻跳出所有循环,减少多余计算 - 最后根据标记结果输出对应提示
如果想快速判断,还有更简洁的写法(非for循环,仅供参考):利用集合自动去重的特性,只要集合长度和原数组长度不一致,就说明存在重复元素:
print('you win!!' if len(set(check)) != len(check) else 'you lost!')
内容的提问来源于stack exchange,提问作者Adam Katz
相关产品推荐
相关产品推荐

