python重复元素判定函数程序

博主分享了自学Python过程中的心得,通过全国计算机二级Python考试题目实践,对比初级与升级版函数,探讨字典和集合在重复元素检测中的应用。通过实例展示并解析代码,旨在检验基础学习成果和提升技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言:本人从小白自学python,为了测试基础学习效果,增加一定的促进,想通过参加全国计算机等级考试二级python来检验基础学习情况。当然,通过计算机二级不是目的,也不是终点,只是想通过一个考试来检验学习成果。在学习过程中,会将该过程编写的python小程序题目在此发表,希望找到共同学习的人一起讨论,可能发表的有许多不是很完善的地方,请大家指正。后期学习路线,还会继续通过参加一些社会类的考试来检验学习成果。高阶段学习的话,可能会参加一些python的比赛,或者自己接一些项目,然后会根据自己的情况将一些项目的Python程序在此分享。
 

一、本项目来源:全国计算机等级考试二级教程python语言程序设计,第六章第二程序题第4和5小题。重复元素判定,编写一个函数,接收列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和输出测试结果的程序。第5小题是制作升级程序,利用集合的无重复性改编上一个程序,获得一个更快更简洁的版本。

二、先上传自己写的程序吧

1.初级版的函数程序

def repeat(lis):
    item_dic = {}
    for i in lis:
        item_dic[i]=item_dic.get(i,0)+1
    if len(item_dic)<len(lis):
        return True

s = eval(input('请输入一个列表:'))
print(repeat(s))
print('原来输入的列表{}'.format(s))

2.升级版的函数程序

def repeat2(lis):
    if len(set(lis))<len(lis):
        return True
p = eval(input('请输入一个列表:'))
print(repeat2(p))
print('原来输入的列表{}'.format(p))

三、解读程序语句。

先解读两个函数的不同吧,主要利用了字典和集合两个特征来收集输入的数据,进行去重,在比较元素变化,来判断有无重复。

item_dic = {}
    for i in lis:
        item_dic[i]=item_dic.get(i,0)+1

第一个函数,我是用了一个字典来对输入的列表进行一个元素频率的统计,将重复的元素就合并了,然后通过比对字典长度和输入列表长度,就可以比较出有无重复元素。

if len(set(lis))<len(lis):
第二个函数,主要利用了集合的转换,set函数,将输入列表变为一个集合,利用集合去重功能,自动去重复,然后比较集合元素和输入列表元素的变化。

从两个函数代码的数量和精简程度,利用集合可能效果更好些。

四、程序运行效果

1.第一个程序运行效果

 

2.第二个程序运行效果

五、程序中需要注意的事。

在编写过程出现过报错,就是在获取输入数据的时候,input获取的是字符串,需要加eval函数,将输入数据进行转换,变为python直接运行数据,保留输入的列表类型,这样才能进行后续处理。 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python小白的逆袭之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值