python百例练习之第四例-sort()、sorted()

问题

编写一个程序,该程序接受一系列由空格分隔的单词作为输入,并在删除所有重复的单词并将其按字母数字顺序排序后打印这些单词。
假设将以下输入提供给程序:hello world and practice makes perfect and hello world again
然后,输出应为:again and hello makes perfect practice world

提示:
如果将输入数据提供给问题,则应假定它是控制台输入。
我们使用set容器自动删除重复的数据,然后使用sorted()对数据进行排序。

代码

#第一种方法sort():
a = input('请以空格分隔输入:')
b = list(set(a.split(' ')))
b.sort()
print(' '.join(b))
#第二种方法sroted():
a = input('请以空格分隔输入:')
b = sorted(list(set(a.split(' '))))
print(' '.join(b))

两者返回的结果都是相同的,但是对原序列的操作是不同的。

sort():在原序列上进行修改。之前我把排序语句写为了:b = list(set(a.split(’ '))).sort(),然后print(b),但是返回的是:None,也就是说b这个列表不存在,然后我查了一下,原因如下:创建的变量b是 用来接收sort()函数产生的返回值 ,sort本身的逻辑是对a进行了排序,然后并不返回新列表也就是没有返回值,你用y去接收它的返回值,当然是None。(就相当于有一个文件,你去同学a的电脑上改的,然后同学b让你把这个文件发给他,但是其实你没有这个文件,这个文件依然在同学a的电脑上,所以同学b拿不到这个文件)

sorted():返回一个排序后的新列表,不改变原有列表的元素。有返回值,那就可以创建一个新变量去接收或者直接print(’ ‘.join(sorted(list(set(a.split(’ ')))))),都是可以的了。

set() :创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。但要注意它返回的是一个集合{}(它有返回值),而不是一个列表[],所以去重之后要记得按照自己的需要进行类型转换。
语法:set([iterable])
iterable:可迭代对象对象(其实这里我之前学过,但是长时间没复习,有点儿忘了,希望大家引以为戒,学习新知识的同时也不要忘记复习之前知识呀)

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值