Python挑战练习-进阶挑战38
编写一个程序来查找列表中不重复的数字。
-
定义函数
find_unique()
,它接受一个列表作为参数。 -
在函数内部,找出列表中只出现一次的数字。
-
以列表中的出现的顺序返回唯一的数字
分析:我一看!查找不重复的数字,也就是查只出现一次的数字(这题做过啊,详情看之前写的这个列表唯一数字的题)https://blog.youkuaiyun.com/m0_47089558/article/details/144736420?fromshare=blogdetail&sharetype=blogdetail&sharerId=144736420&sharerefer=PC&sharesource=m0_47089558&sharefrom=from_link
那么知道了把什么查找出来,接下来就开始吧,小小Medium拿捏!
def find_unique(lst):
# 此处编写代码
num_list={}
for num in lst:
num_list[num] = num_list.get(num, 0) + 1
result=[]
for num, count in num_list.items():
if count == 1: # 找到只出现一次的数字
result.append(num)
return result
# 获取用户输入并转为数字列表
numbers = list(map(int, input().split()))
# 调用函数
print(find_unique(numbers))
注意:创建一个空列表 result
,用于存储最终找到的只出现一次的数字。再次通过 for num in lst:
循环遍历列表中的每一个数字,在这次循环中,使用 if num_list[num] == 1:
判断当前数字在之前统计的次数是否为 1
,如果是,说明这个数字是只出现一次的数字,将其添加到 result
列表中。
ps:总是忘记加一个空列表,不加空列表就会导致找到一个出现一次的元素,就会通过return返回,实现不了返回所有出现一次的元素