请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

【每日一坑 2】 去除重复

[复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2015-8-3 13:57:05 |显示全部楼层
Lisbeth.M 发表于 2015-8-3 07:53
我看见有人的答案是sorted(set((4, 7, 3, 4, 1, 9, 8, 3, 7)))
然后我单独地打看看有什么效果,其实set(* ...

set确实也带排序功能
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

发表于 2015-9-1 03:36:11 |显示全部楼层
  1. lst1 = [4, 7, 3, 4, 1, 9, 8, 3, 7 ]
  2. lst2 = list(set(lst1))
  3. print lst2
复制代码
后来测试貌似 lst2 = set(lst1) 也可以获得同样的结果。
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

发表于 2015-9-16 00:18:35 |显示全部楼层
ip=raw_input("input:")
ip+=','
num=0
se=set()
LenSet=len(se)
l=[]
for s in ip:
    if s!=',':
        num=num*10+int(s)
    else:
        se.add(num)
        if LenSet!=len(se):
            l.append(num)
            LenSet=len(se)
        num=0

l.sort()
print l
回复

使用道具 举报

0

主题

0

好友

12

积分

新手上路

Rank: 1

发表于 2015-9-16 00:23:45 |显示全部楼层
  1. ip=raw_input("input:")
  2. ip+=','
  3. num=0
  4. se=set()
  5. LenSet=len(se)
  6. l=[]
  7. for s in ip:
  8.     if s!=',':
  9.         num=num*10+int(s)
  10.     else:
  11.         se.add(num)
  12.         if LenSet!=len(se):
  13.             l.append(num)
  14.             LenSet=len(se)
  15.         num=0

  16. l.sort()
  17. print l
复制代码
回复

使用道具 举报

1

主题

0

好友

207

积分

中级会员

Rank: 3Rank: 3

发表于 2016-1-16 11:42:09 |显示全部楼层

  1. import random
  2. o = [1,1,2,2,3,4,5,5,6,7]
  3. o2 = []
  4. for i in o:
  5.   if i in o2: continue
  6.   o2.append(i)

  7. o2.sort()
  8. print(o2)
复制代码
回复

使用道具 举报

0

主题

1

好友

61

积分

注册会员

Rank: 2

发表于 2016-2-3 09:08:49 |显示全部楼层
交作业,初学者请大神多指点,谢谢先

#!\usr\bin\python
#coding=utf-8
#下面这个函数是把一大堆用户输入的数据进行筛选,筛查掉重复数字,保留不重复的数字

def num_remove(listB):
    if (listB != []):
        final_set = set(listB)
        print "final num selected is as following:\t" , final_set
    else:
        print "wrong!"
        
def main():
    listA = []
   
    while True:
        ele = raw_input("please input a number:\t")
        print "ele:\t", ele
        print "ele type is :\t", type(ele)
        
        if (ele !=""):              #非必须写到刮号里面去,否则报错
            listA.append(ele)
        else:
            break
         
    print "The original list is as following:\t" , listA
    num_remove(listA)
   
if __name__=='__main__':
    main()
   
   
#if __name__=='__main__'此处main需要加上单引号,不加单引号要报错
回复

使用道具 举报

2

主题

0

好友

59

积分

注册会员

Rank: 2

发表于 2016-2-6 14:09:15 |显示全部楼层
  1. #coding:utf-8
  2. li = [4, 7, 3, 4, 1, 9, 8, 3, 7]
  3. li2 = []
  4. for i in li:
  5.         if i not in li2:
  6.                 li2.append(i)

  7. print sorted(li2)
复制代码
回复

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

发表于 2016-3-16 15:10:35 |显示全部楼层
Crossin 老师可以帮忙看看嘛,要疯掉了。。。
  1. def find_max(list):
  2.     num = len(list)
  3.     max = list[0]
  4.     for i in range(num-1):
  5.         if max > list[i+1]:
  6.             pass
  7.         else:
  8.             max = list[i+1]
  9.     return max
  10. def Not_contain(list,element):
  11.     if not list:
  12.         return True
  13.     for i in list:
  14.         if i == element:
  15.             return False
  16.         else:
  17.             return True
  18. def delete(list):
  19.     number = []
  20.     for i in list:
  21.         if Not_contain(number,i):
  22.             number.append(i)
  23.     return number
  24. list = raw_input('Pls input an array of numbers and use blank to separate them\n')
  25. List = list.split(' ')
  26. length = len(List)
  27. numbers = []
  28. result = []
  29. for i in range(length):
  30.     numbers.append(int(List[i]))
  31. for i in range(length):
  32.     if numbers == None:
  33.         exit()
  34.     else:
  35.         result.append(find_max(numbers))
  36.         try:
  37.             numbers.remove(find_max(numbers))
  38.         except:
  39.             pass
  40. print result
  41. print delete(result)
复制代码
我觉得其他部分都没什么问题,只是在 Not_contain(list,element)这个函数

这个函数只能check element是不是list[0],十分奇怪。。。
  1. def Not_contain(list,element):
  2.     if not list:
  3.         return True
  4.     for i in list:
  5.         if i == element:
  6.             return False
  7.         else:
  8.             return True
复制代码
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-3-16 23:55:21 |显示全部楼层
mike90326 发表于 2016-3-16 15:10
Crossin 老师可以帮忙看看嘛,要疯掉了。。。我觉得其他部分都没什么问题,只是在 Not_contain(list,elemen ...

因为如果第一个不相等,就已经return True返回了啊。你体会一下
可以把else去掉,把return True 写在函数最后面。

不过其实不用这么麻烦,python自带了in方法:
if element not in list:
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

34

积分

新手上路

Rank: 1

发表于 2016-3-23 11:41:39 |显示全部楼层
crossin先生 发表于 2016-3-16 23:55
因为如果第一个不相等,就已经return True返回了啊。你体会一下
可以把else去掉,把return True 写在函数 ...

真是脑袋短路了。。。。感谢crossin老师!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 08:59 , Processed in 0.021204 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部