首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

逆序与排列

最近在做一道练习题,给定一个正整数num,求出范围内(1-num)内所有的回数。所谓回数,用我的话理解,就是数字均匀对称分布的数。

举个例子:

121,1111,989,1·······这些都是回数。

有小伙伴可能忘了filter用法,解释下filter是用来干嘛的,它接受两个参数,一个是返回布尔值的函数,另一个是可迭代的序列,把序列作用于函数,返回结果是一个迭代器。

本题的解法是,先产生1到num之间的数值序列,然后写一个筛选条件,就可以用filter了,关于筛选条件中,我们的处理办法是现将这些数值变成字符串,然后比较逆序后的字符串是否与该字符串相等,如果相等就返回True,否则返回False。

上图中我们打印出了1~1000以内的回数。

作者君忽然想到逆序与排列有哪些做法呢?

于是把想到的基础知识手打了一边,留个mark,供以后学习。

1、字符串的排列与逆序:

字符串的排列与逆序首要想到的是slice切片。

切片可接受三个参数【start】、【end】、【step】,也就是开始的位置索引,结束的位置索引,以及步长。这里有个规则,那就是结束的切片索引是取不到的,然后step相当于等差数列的公差,如果是正数就顺序加步长,如果是负数就逆序取步长,如果不设置,默认下为1。举个例子:

总结一下,如果想要解释一个切片是什么意思,不如试试作者君总结的规律:

对字符串切片来说,start,end,step三者的优先级是start>step>end

其次,如果要逆序的话,可以考虑用reversed,返回的是一个迭代器,如果要得到字符串,可以用join。

还有sorted,sorted接受三个参数,可迭代的序列,key,以及布尔值reverse。sorted处理字符串,其实处理的是索引,也就是把索引逆序,然后就得到了逆序列。

2、列表的排序与逆序:

列表也支持切片,与字符串中的形式差不多,这里不再赘述。

reversed处理列表时返回的也是迭代器:

sorted处理列表序列时,列表的数据类型必须一致:

3、字典的排序与逆序:

字典没有切片,只有键对:

reversed与sorted在字典中的应用:

好了,今天的分享就到这了!

总结一下,本文对字符串、列表、字典三种数据结构的排序与逆序进行了介绍,希望对你有帮助!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180727G17TRC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券