Python练习题4(列表去重):[5,3,4,'ok',4,3,'abc',8,52,'ok']去除列表中重复内容 方法一:使用set 方法二:不使用set,自己写方法

方法一:利用集合去重

1 list1 = [5,3,4,‘ok‘,4,3,‘abc‘,8,52,‘ok‘]
2 list1=list(set(list1))
3 print(list1)

方法二:此方法略微冗余,先判断元素是否重复,再将重复元素提取并保存到新列表中,再for 新建的列表元素,删除原列表

 1 def list_dup(ls):
 2     list2 = []
 3     length = len(ls)                  #获取列表元素个数
 4     for i in range(0,length-1):
 5         for j in range(0,length-1):
 6             if ls[i] == ls[j]:        #判断元素是否重复
 7                 list2.append(ls[j])   #将重复的元素提取出来(注:会重复提取)
 8     #for i in ls:
 9         #if ls.count(i) > 1:          #另一种方法,用for和count()提取出重复元素
10             #list2.append(i)
11     for n in list2:
12         if ls.count(n) > 1:           #判断元素的重复次数,大于1的,删除该元素
13             ls.remove(n)
14             #del ls[ls.index(n)]      #用del删除
15     return ls
16 list1 = [5,3,4,‘ok‘,4,3,‘abc‘,8,52,‘ok‘]
17 print(list_dup(list1))

方法三:for循环列表元素,判断是否重复,并删除(注意:不能循环原列表删除,会报out of range错误)

1 def list_dup(ls):
2     for i in ls[:]:                   #循环复制的列表,可避免报out of range错误
3         if ls.count(i) > 1:           #判断元素的重复次数,大于1的,删除该元素
4             ls.remove(i)
5     return ls
6
7 list1 = [5,3,4,‘ok‘,4,3,‘abc‘,8,52,‘ok‘]
8 print(list_dup(list1))

方法四:由方法三变化,用递归来实现。--by 孟楠兄

def list_dup(ls):
    for i in ls:
        if ls.count(i) > 1:
            ls.remove(i)
            list_dup(ls)              #递归
    return ls

list1 = [5,3,4,‘ok‘,4,3,‘abc‘,8,52,‘ok‘]
print(list_dup(list1))

方法五:用in 和 not in,代码量最小,最简单,同时也不改变原列表排序

list1 = [5,3,4,‘ok‘,4,3,‘abc‘,8,52,‘ok‘]
list2 = []
for n in list1:
    if n not in list2:
        list2.append(n)
print(list2)

Python练习题4(列表去重):[5,3,4,'ok',4,3,'abc',8,52,'ok']去除列表中重复内容 方法一:使用set 方法二:不使用set,自己写方法

原文地址:https://www.cnblogs.com/felixqiang/p/10223852.html

时间: 2024-10-18 05:06:13

Python练习题4(列表去重):[5,3,4,'ok',4,3,'abc',8,52,'ok']去除列表中重复内容 方法一:使用set 方法二:不使用set,自己写方法的相关文章

链表去重处理(去除链表中重复出现的节点)

#include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct stu{ int m; struct stu *l; }st; int main() { int m; st *h; while(scanf("%d",&m)!=EOF) { st *l; h=new st; l=new st; l=h; while(m--) { st *s; s=new st; sc

去除List列表中重复值(稍作调整,也适合于List&lt;T&gt; 和 List&lt;?&gt;)

方法一 循环元素删除 [c-sharp] view plaincopy public static void removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j -- ) { if (list.get(j).equals(list.get(i))) { list.remove(j); } } } System.

python练习题:循环打印嵌套列表

好久没写博文了,添加一个练习题,选自<head_first_python>~~ python列表:以中括号开始和结束"[]":列表项以逗号","分隔开,使用赋值操作符"="赋予一个标识符.如: movies=["the holy",1975,"terry jones",91,["graham",["michael","john",&qu

python列表去重 冒泡排序 插序排序

python对列表去重例子 #!/usr/bin/env python arr_num1 = [1,2,3,4,2,12,3,14,3,2,12,3,14,3,21,2,2,3,4111,22,3333,4] arr_num2 = [2,1,3,2,43,234,454,452,234,14,21,14] num_list = [] for i in arr_num1:     if i in arr_num2 and i not in num_list:      num_list.appen

python 日常已记 列表去重

常规列表去重的两种方法 第一种: list=[1,2,2,2,2,3,4,5,5,6,7,8,8,9] list2=[] for a in list: if a not in list2: list2.append(a) print (list2) 第二种: list=[1,2,2,2,2,3,4,5,5,6,7,8,8,9] list=list(set(list)) print (list3) 原文地址:https://www.cnblogs.com/mahaining/p/9434184.h

python 列表去重

1 a = [11,11,22,33,44,55,22,33,44] 2 3 # 方法一 4 # b = [] 5 # for i in a: 6 # if i not in b: 7 # b.append(i) 8 # print(b) 9 10 f = set(a) # 集合去重 11 b = list(f) # 类型转换 12 print(b) 原文地址:https://www.cnblogs.com/Hunter-541695/p/9351003.html

Python练习题 028:求3*3矩阵对角线数字之和

[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得代码太啰嗦.矩阵这东西,应该有个很现成的方法可以直接计算才对-- 啰嗦代码如下: str = input('请输入9个数字,用空格隔开,以形成3*3矩阵:') n = [int(i) for i in str.split(' ')] #获取9个数字 mx = [] #存储矩阵 for i in ra

Python练习题 004:判断某日期是该年的第几天

[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码!而且还不包含输入数据的验证(只能假设输入的日期是严格按照格式来的).但我坚信,一定有更简洁的方法,比如 Python 对日期的处理. 不过反正还没学到这些知识,现在只能用傻大粗的办法解决.等学到高级的办法再来更新吧~~~ 思路:先判断是否为闰年,这关系到 2 月份的天数.之后再根据月份值把前几个月的

Python练习题-1

最近这几天的学习总练习: #! /usr/bin/env python # -*- coding: utf-8 -*- # Date: 2017/6/9 #练习一/1:实现用户输入用户名和密码,当用户名为seven且密码为123时,显示登录成功,否则失败. # d = {'seven':'123'} # while True: # user = input('Enter your username:') # passwd = input('Enter your password:') # if