设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 6466|回复: 3
打印 上一主题 下一主题

每日一坑 2

[复制链接]

2

主题

0

好友

12

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2018-1-25 18:16:13 |只看该作者 |倒序浏览
#从一组数据中去除掉重复的元素,并将其排序输出。
#我的想法是先随机提取一些整数比如在1-50中随机取20个数(当然要可以重复)
#然后再对这些数进行操作

import random  #要用到随机操作先调用random函数
n = 1
rlist = []                            #建立1个空列表
while n <= 20:
    num = random.randint(1,50)        #生成一个1-50之间的随机整数
    rlist = rlist + [num]             #把生成的随机整数添加到rlist列表中
    n += 1                            #迭代
print(rlist)                          #打印测试
rlist.sort()                          #对列表进行顺序排序
print(rlist)
##for i in rlist:                       #对列表中的每一个值进行提取
##    m = rlist.count(i)                #计算值在列表中出现的次数
##    if m > 1:                         #如果多于1次
##        rlist.remove(i)               #移除掉该值在列表中的第一个匹配项
##print(rlist)                          #打印列表
##当有4个或以上重复数字的时候就出错了,会打印出重复数字的。。(待解决)

回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

沙发
发表于 2018-4-2 10:53:14 来自手机 |只看该作者
for i in rlist是用迭代器实现,内部隐藏了记录当前迭代器的状态,而remove方法删除了当前元素后,迭代器自动指到下一个元素,原先的rlist在内存中的位置并未改变
可以把
for i in rlist:
改成
for i in rlist[:]:
即可解决
回复

使用道具 举报

0

主题

0

好友

49

积分

新手上路

Rank: 1

板凳
发表于 2018-4-24 09:57:49 |只看该作者
#keng2
def del_repeat(list):
    result = []
    lenc = len(list)-1
    n = 0
    for i in range(n,lenc):
        i = n
        if list in list[i+1:]:
           # print list
            list.pop(i)
            lenc-=1
            if i >0:
                n =i
            if i ==0:
                n =0
        else:
           # print "result:%d" % list
            result.append(list)
            print result
            n = i+1
    result.append(list[-1])
    return result

a = [1,2,3,4,3,5,6,4,1,2,7,7,7,4]
b = [1,2,3,4]
x = del_repeat(a)
print x
y = del_repeat(b)
print y


回复

使用道具 举报

0

主题

0

好友

49

积分

新手上路

Rank: 1

地板
发表于 2018-4-24 09:58:33 |只看该作者
小小艳紫 发表于 2018-4-24 09:57
#keng2
def del_repeat(list):
    result = []

自测了一下没有问题,不知道有没有测试全
回复

使用道具 举报

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

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

GMT+8, 2024-11-25 22:38 , Processed in 0.022416 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部