输入8个数字并展示唯一值的代码问题:无法返回唯一列表
提取输入数字唯一值的代码修正
你写的代码只是把输入的数字直接塞进列表,完全没做去重处理,而且循环用了range(9)会让用户输入9个数字,不是需求里的8个,所以才会返回带重复值的列表。
下面是两种可行的修正方案:
方案一:保留输入顺序的去重
这种方法会按数字第一次出现的顺序保留唯一值:
unique = [] # 循环8次获取8个输入 for i in range(8): num = input("请输入数字:") # 只添加列表里没有的数字 if num not in unique: unique.append(num) print("所有唯一值:", unique)
方案二:用集合快速去重(不保留输入顺序)
集合本身会自动剔除重复元素,适合不需要在意顺序的场景:
num_list = [] for i in range(8): num = input("请输入数字:") num_list.append(num) # 转集合去重后再转回列表 unique = list(set(num_list)) print("所有唯一值:", unique)
注意:如果需要严格保留用户输入的先后顺序,优先用方案一;方案二的输出顺序是随机的。
内容的提问来源于stack exchange,提问作者Akanksha Arya
相关产品推荐
相关产品推荐

