python重复元素判定函数程序

引言:本人从小白自学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)

2.升级版的函数程序

def repeat2(lis):
    if len(set(lis))

三、解读程序语句。

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

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

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

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

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

四、程序运行效果

1.第一个程序运行效果

python重复元素判定函数程序_第1张图片

 

2.第二个程序运行效果

python重复元素判定函数程序_第2张图片

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

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

你可能感兴趣的:(python,pycharm)