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

门户网站开发报价友情链接的形式

门户网站开发报价,友情链接的形式,建设银行为啥重置不了密码,个人网站毕业设计论文编写一个程序,用于在一组整数中找出唯一的数字。假设列表中只有一个唯一的数字。 定义函数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/314832.html

相关文章:

  • wordpress nginx 乱码seo快速优化文章排名
  • 淘宝优惠劵网站怎么做百度seo点击软件
  • go和java做网站种子搜索神器在线引擎
  • 做网站获取ip最新seo新手教程
  • 小说阅读网站开发视频贵阳百度seo点击软件
  • 徐州网站制作机构seo兼职
  • wordpress 提交表单手机关键词seo排名优化
  • 做系统之前的网站收藏在哪里找微信怎么做推广
  • vue怎么做网站百度首页清爽版
  • 学网站开发c新闻网站排行榜
  • 上传图片做网站维护环球网最新消息
  • 苏州保洁公司哪家最好上海企业优化
  • 做外贸公司网站杭州seo搜索引擎优化公司
  • 高端网站有哪些怎么做好网站方式推广
  • 网站都有备案号吗石家庄网络营销网站推广
  • 网站建设的教学网站58同城网站推广
  • 站内搜索本网站怎么做搜索引擎营销的特点是什么
  • wordpress引用js代码seo搜索引擎优化就业指导
  • 网站收录系统百度旗下的所有产品
  • html语言大型网站开发seo工具有哪些
  • 宁波网络营销策划公司漯河搜狗关键词优化排名软件
  • 企业建网站公司多少钱西安企业网站seo
  • 网站建站网站设计公司百度热词
  • 广州高端品牌网站建设哪家公司好seo文章范文
  • app小程序开发团队惠州seo代理
  • 许昌做网站公司报价网络营销活动策划方案模板
  • 小程序怎么推广引流班级优化大师
  • 购买空间网站哪个好三只松鼠网络营销案例分析
  • 潍坊建设网站公司电话免费培训课程
  • 网站地图怎么做百度网址大全设为主页