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

Crossin的编程教室

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

【每日一坑 2】 去除重复

[复制链接]

2

主题

0

好友

66

积分

注册会员

Rank: 2

发表于 2018-8-24 14:50:01 |显示全部楼层
#coding:utf-8
li1=[4,7,3,4,1,4,9,1,8,3,7]
li2=[]
for i in li1:
    if i not in li2:
        li2.append(i)

print sorted(set(li2))
回复

使用道具 举报

3

主题

1

好友

111

积分

注册会员

Rank: 2

发表于 2021-2-12 11:57:55 |显示全部楼层
  1. import re

  2. l_str = ' ' #将l_str先设为空格以进入循环
  3. while l_str:
  4.     l_str = input('''输入一串数字(整数或小数),能将其去重并排序。回车退出:\n(形式类似于"1,9,2,8,5")\n''')
  5.     l_num = [float(l) for l in re.findall(r'\b\d+\.?\d*\b',l_str)]
  6.     #用float()和正则表达式中的'\.?\d*'防止输入数字为浮点数
  7.     print(','.join([str(i) for i in sorted(set(l_num))]))
  8.     print()
复制代码
这个程序能接受浮点数

老师能看看吗?

欢迎老师的评价和建议

还有一个问题,就是无论输入的是整数还是浮点数,最后输出的都会是浮点数

老师能教一下我,怎样把浮点数末尾无效的零去掉吗?

谢谢啦!
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2021-2-12 23:58:35 |显示全部楼层
FERRYMAN 发表于 2021-2-12 11:57
这个程序能接受浮点数

老师能看看吗?

str(i).rstrip('0')
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

3

主题

1

好友

111

积分

注册会员

Rank: 2

发表于 2021-2-13 11:43:29 |显示全部楼层
crossin先生 发表于 2021-2-12 23:58
str(i).rstrip('0')

谢谢老师!问题解决了
回复

使用道具 举报

0

主题

1

好友

21

积分

新手上路

Rank: 1

发表于 2021-7-6 20:12:01 |显示全部楼层
set([4,7,3,4,1,9,8,3,7])
这个答案对吗?输出结果是正确的,但我看大家都写的那么多,
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2021-7-6 23:50:42 |显示全部楼层
chinaso1111 发表于 2021-7-6 20:12
set([4,7,3,4,1,9,8,3,7])
这个答案对吗?输出结果是正确的,但我看大家都写的那么多, ...

对的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

21

积分

新手上路

Rank: 1

发表于 2021-7-7 12:44:27 |显示全部楼层
crossin先生 发表于 2021-7-6 23:50
对的

谢谢corssin老师,
我基础知识不太扎实,刚开始学习,请多指导!
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

发表于 2021-7-15 21:57:02 |显示全部楼层
本帖最后由 llnever 于 2021-7-15 22:01 编辑
  1. #提示语
  2. print('从一组数据中去除掉重复的元素,并将其排序输出\n')
  3. t=input('输入一串数字,用空格隔开,按回车确认\n')
  4. #准备工作
  5. l=t.split()
  6. s=[min(l)]
  7. d=0
  8. n=len(l)
  9. #循环开始
  10. while n>=1:
  11.     for i in range(n):
  12.         if l==min(l):
  13.             if l[i]>s[d]:
  14.                 s.append(min(l))
  15.                 d=d+1
  16.             del l[i]
  17.             break
  18.     n=n-1
  19. #得出结论
  20. print(s)
  21. #不知道set,sort,只好这么做了,思路是遍历输入的数字列表,找到最小的,append到另一个列表s中,将这个最小的删除。重复。
复制代码
回复

使用道具 举报

9

主题

2

好友

164

积分

注册会员

Rank: 2

发表于 2021-7-21 18:48:00 |显示全部楼层
  1. print(
  2.     ', '.join(
  3.         map(
  4.             str,
  5.             sorted(
  6.                 list(
  7.                     set(
  8.                         map(
  9.                             int,
  10.                             input()
  11.                             .split(', ')
  12.                         )
  13.                     )
  14.                 )
  15.             )
  16.         )
  17.     )
  18. )
复制代码
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2021-7-22 23:50:04 |显示全部楼层
ZZZZZ 发表于 2021-7-21 18:48

恶意炫技
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-4-19 03:36 , Processed in 0.018029 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部