当前位置: 首页 > wzjs >正文

网站开发和app开发中国互联网数据平台

网站开发和app开发,中国互联网数据平台,dreamweaver8.0做网站,学做网站好学吗编写一个程序,用于在一组整数中找出唯一的数字。假设列表中只有一个唯一的数字。 定义函数find_unique_number(),参数为num_list,数字列表。 在函数内部,找出只出现一次的数字,并返回它。 如果列表只有一个数字&#…

编写一个程序,用于在一组整数中找出唯一的数字。假设列表中只有一个唯一的数字。

定义函数find_unique_number(),参数为num_list,数字列表。
在函数内部,找出只出现一次的数字,并返回它。
如果列表只有一个数字,则返回该数字。
如果列表为空,则返回None。
如果不存在这样的数字,则返回None。

传统写法:

def find_unique_number(num_list):# 此处编写你的代码 count={}for num in num_list:count[num]=count.get(num,0)+1unique_list=[]for num,cnt in count.items():if cnt==1:unique_list.append(num)return unique_list[0] if len(unique_list)==1 else None# 将输入的整数转换为列表
numbers = list(map(int, input().split()))# 调用函数
print(find_unique_number(numbers))

代码说明:


# 将输入的整数转换为列表
numbers = list(map(int, input().split()))
input():获取用户输入字符串
.split():按空格分割字符串为列表
map(int, ...):将列表中的每个元素转换为整数
map(func, iterable) 的含义:
对第二个参数 iterable(可迭代对象)中的每个元素,使用第一个参数 func(函数)进行处理。
此处将列表中的每个字符串应用 int() 函数,尝试转为整数
list(...):将迭代器转换为列表
map 函数返回的是一个迭代器(Iterator),而不是列表。
list() 的作用是将迭代器的所有元素提取出来形成列表。完整流程总结
输入
用户输入:"1 3 5 7"
字符串分割
input().split() → 得到 ["1", "3", "5", "7"]
类型转换
map(int, ["1", "3", "5", "7"]) → 遍历转换为整数 1, 3, 5, 7
生成列表
list(...) → 生成最终列表 [1, 3, 5, 7]
结果赋值
numbers 变量被赋值为 [1, 3, 5, 7]

等效代码(用列表推导式改写)

numbers = [int(x) for x in input().split()]
对比说明:
map 在某些场景下效率更高,
而列表推导式通常可读性更好,两者最终结果相同。

列表推导式

def find_unique_number(num_list):if not num_list:return Noneif len(num_list) == 1:return num_list[0]count = {}for num in num_list:count[num] = count.get(num, 0) + 1# 根据题目条件,预期只有一个唯一值,因此返回第一个或仅有的出现一次的数值# 若存在多个出现一次的情况,根据题意返回Noneunique_numbers = [num for num, cnt in count.items() if cnt == 1]return unique_numbers[0] if len(unique_numbers) == 1 else None

代码说明:

  • 边界处理

当输入列表为空时直接返回None
当列表仅有一个元素时无需遍历,直接返回该元素

  • 统计频次

使用字典存储每个数字的出现频次,count.get(num, 0)方法确保首次访问时初始化为0
时间复杂度为O(n),可处理大规模数据

  • 精准匹配

通过列表推导式筛选出现一次的数值,存储到unique_numbers
根据题意中"列表中只有一个唯一的数字"的约束条件,仅在筛选结果数量严格为1时返回该数值,否则返回None
在这里插入图片描述
count[num] = count.get(num, 0) + 1
在这里插入图片描述
为什么要用 get(num, 0) 而不是直接访问字典?
假设直接写 count[num] + 1:

  • 如果 num 不在字典中 → 会引发 KeyError(例如首次遇到数字2时,count[2] 不存在)。
  • 使用 .get(num, 0) 可以规避此问题:当 num 不在字典中时,会安全地返回 0,使得逻辑可以正常运行。
    传统写法
count = {}
for num in num_list:if num in count:    # 如果数字已存在count[num] += 1 # 出现次数+1else:            count[num] = 1  # 首次记录1次
http://www.dtcms.com/wzjs/62424.html

相关文章:

  • 建网站的设备2022年最新新闻播报稿件
  • 网站贴子推广怎么做策划
  • 如何建设企业电子商务网站短视频培训课程
  • 网站关停怎么做西安网络推广公司大全
  • ps做网站教程网络营销做得好的公司
  • 网络推广培训网站怎么做好营销推广
  • 网站建设放电影怎么做设计师经常用的网站
  • 食品加工设备建站方案代发qq群发广告推广
  • php网站开发文章管理系统刚刚地震最新消息今天
  • 吴忠市建设局网站智慧教育
  • 怎么申请域名和备案seo排名优化联系13火星软件
  • node.js做企业网站推广网站要注意什么
  • 深圳的网站建设做网站要多少钱
  • 苏州高校网站建设建议今日足球最新预测比分
  • 网站开发工程师英文简历百度seo排名在线点击器
  • wordpress每篇文章加水印阳泉seo
  • 做响应式网站费用2024年重大政治时事汇总
  • 如何管理b2c网站宿迁网站建设制作
  • 网站单页在线制作三生网络营销靠谱吗
  • 网站建设江苏百拓百度推广后台管理
  • 外发加工网站杭州seo代理公司
  • 怎么免费建设交友网站全球网站访问量排名
  • 有知道做网站的吗搜索引擎优化的方式
  • 2021中国互联网企业百强名单优化营商环境应当坚持什么原则
  • 长沙岳麓区房价新楼盘房价深圳知名网络优化公司
  • 我做推广找不到我的网站海外推广渠道都有哪些
  • 网站制作哪家好薇网页设计一般用什么软件
  • 中山市做网站没经验可以做电商运营吗
  • 中国最新消息新闻报道长沙企业关键词优化哪家好
  • 做本地门户网站淄博网站推广