如何去除掉列表里多余的相同元素?

如何去除掉列表里多余的相同元素?

题目详情
今天在学习python里集合时,老师提出了一个问题,如何将列表里的多余的相同元素去掉,留下的列表每一个元素都不相同,在不使用集合的相关知识前提下。
随便给定一个列表 L 如:

L = [1, 2, 2, 3, 4, 5, 6, 1, 5, 8, 4]

然后经过一系列的操作后,列表 L 的元素如下:

L = [1, 2, 3, 4, 5, 6, 8]

自行解答
自己写的代码也是参考了老师给出的解答。
在不用集合的情况下先建立一个中间列表 L0 ,使用列表中的 append() 函数对中间列表 L0 进行元素传递,使用 if 语句判断迭代出的元素是否在 L0 中,如果在,就不要添加。
因为集合是唯一的,如果使用集合方法的话就是将列表 L 转换成集合,集合会自动删除重复的元素,集合在转换成列表,不过集合会导致新生成的列表无序,因为集合同样是无序的,无需与唯一是集合的两大特点。
参考代码如下:

def fun( L ):
    L0 = []
    for i in L:
        if i not in L0:
            L0.append( i )
    L = L0
    return L

#L = list( input('请给定一个列表:') )
L = [1, 2, 2, 3, 4, 5, 6, 1, 5, 8, 4]
L = fun( L )
print( L )

运算结果:

>>> 
RESTART: C:/Users/lenovo/OneDrive/Python/去除多余的相同元素.py 
[1, 2, 3, 4, 5, 6, 8]
>>> 

运算结果也是符合题目预设的条件,将多余的相同元素给去掉了。

疑问
其实我原本是想定义一个函数模块,当随便输入一个要转换的列表,将这个列表传入函数的参数,不过我对用户输入的列表赋值操作不太熟悉,就如同上面代码里我注释部分一样,
本想使用这个方法传入列表 L ,但是后来运行结果不对,所以在想应该是使用有错误,才会导致下面的结果:

>>> 
RESTART: C:/Users/lenovo/OneDrive/Python/去除多余的相同元素.py 
请给定一个列表:[1, 2, 2, 3, 4, 5, 6, 1, 5, 8, 4]
['[', '1', ',', ' ', '2', ',', ' ', '2', ',', ' ', '3', ',', ' ', '4', ',', ' ', '5', ',', ' ', '6', ',', ' ', '1', ',', ' ', '5', ',', ' ', '8', ',', ' ', '4', ']']
>>> 

希望可以通过后续的学习能解决这个问题,也欢迎各位有兴趣的朋友能解答一下。

一点点小想法
这是我写的第一篇博客,前几天我甚至还不知道博客是啥,只听过微博,看了一篇文章说是如何学好 Python ,其中有一条就是关于建立自己的博客,写点有用的内容上去,与各位码农多多交流,以后工作求职也用的上。
所以就开始百度比较有人气的博客网站,找了Github,发现自己无法在英文的世界里自在的阅读,找了开源中国,发现那好像就是单纯的一个社区,博客系统似乎不太完善,想起以前自己百度代码时,经常会去碰见的就是 CSDN 了,所以就开始有了在CSDN的第一篇博客。
希望我能长久的坚持下去,不熟悉的博客、不熟悉的CSDN、不熟悉的Python也会慢慢的变得熟悉、更熟悉了。
上面可能会有好多的错别字,语句不顺的地方,还请各位指点!

猜你喜欢

转载自blog.csdn.net/Huffie/article/details/81349280
今日推荐