国内外画画做的好网站,官方网站下载qq最新版,自己做的网站突然打不开,珠海网络公司排名前置知识#xff1a;
可迭代对象的定义#xff1a;可迭代对象是指可以被迭代或遍历的对象#xff0c;即可以使用循环结构对其进行逐个访问的对象。
在Python中常见的可迭代对象有#xff1a;列表(list)、元组#xff08;tuple#xff09;、字符串#xff08;sting
可迭代对象的定义可迭代对象是指可以被迭代或遍历的对象即可以使用循环结构对其进行逐个访问的对象。
在Python中常见的可迭代对象有列表(list)、元组tuple、字符串sting等
注意事项因为字符串不是可变的可迭代对象即字符串的元素是不能修改的特性所以字符串对象不能使用sort()函数进行快速排序。若要对字符串进行sort()函数排序则需要将字符串转换为列表或其他可变的可迭代对象。 sort()函数和sorted()函数的区别sort函数会将排序完成的结果直接返回到原可迭代对象中所以会改变原来的可迭代对象内容sorted的执行结果会作为一个中间量返回需要在调用sorted()函数的时候给定一个变量保存sorted函数的返回结果。
在Python中我们常常需要使用到sort函数或sorted()函数对可变的可迭代对象进行快速排序。从而提高程序的运行效率。但是在实际开发中我们大部分时间只采用了普通情况即简单对列表或与元组进行升序/降序排序。 其实往往在实际的开发过程中我们还需要进行自定义排序即特殊情况。 1、普通情况
当程序员在使用sort()函数对可迭代对象进行排序的时候如果不传入参数则会将可迭代对象默认按照升序进行排序并将排序好的结果返回到原来的可迭代对象中。所以使用sort()函数进行排序后原来的可迭代对象已经发生了改变。在使用sort函数如果想要达到升序或降序的效果可以通过sort()函数中reverse参数进行调整。当reverseTrue时则将原可迭代对象进行逆序排序当reverseFalse时则将原可迭代对象进行升序排序。
具体的演示如下
num[12,3,56,9]
num.sort() #默认是正序输出 print(num)print()
tempsorted(num,reverseTrue) #将num逆序输出
print(使用sorted函数不会改变原来可迭代对象的内容:,num)
print(使用sorted函数使用一个中间变量temp保存排序后的结果:,temp)
运行结果 2.特殊情况
在使用sort函数时我们可以利用key参数传入一个函数名称实现将列表中的每一个元素传入到key指定的函数进行某种变化后在进行升序/降序排序。 具体演示如下
蓝桥杯2022年第十三届省赛真题-数位排序
时间限制: 3s 内存限制: 576MB 提交: 7243 解决: 2513
题目描述
小蓝对一个数的数位之和很感兴趣今天他要按照数位之和给数排序。当两个数各个数位之和不同时将数位和较小的排在前面当数位之和相等时将数值小的排在前面。
例如2022 排在 409 前面因为 2022 的数位之和是 6小于 409 的数位之和 13。
又如6 排在 2022 前面因为它们的数位之和相同而 6 小于 2022。
给定正整数 nm请问对 1 到 n 采用这种方法排序时排在第 m 个的元素是多少
输入格式
输入第一行包含一个正整数 n。
第二行包含一个正整数 m。
输出格式
输出一行包含一个整数表示答案。
样例输入
复制
13
5
样例输出
复制
3
提示
1 到 13 的排序为1, 10, 2, 11, 3, 12, 4, 13, 5, 6, 7, 8, 9。第 5 个数为 3。
对于 30% 的评测用例1 ≤ m ≤ n ≤ 300。
对于 50% 的评测用例1 ≤ m ≤ n ≤ 1000。
对于所有评测用例1 ≤ m ≤ n ≤ 106。 实现代码
nint(input())mint(input())def sum_num(x):result0for i in str(x):resultint(i)return resultnum[i for i in range(1,n1)]num.sort(keysum_num) #将数的各个位数相加后的结果作为字典值进行保存print(num[m-1]) 通过截图 代码解释:首先定义一个名为sum_num的函数然后将该函数通过利用key参数传入sort()函数中此时列表中发生的变化是将元素转换为字符串后将对应的数字进行相加然后将计算结果替换这个列表元素中的内容。可以发现此时sort函数中只有key参数没有其他参数。则此时默认将列表num中元素进行升序排序。 具体的实现过程
当num的内容为:[12,23,1,5]
那么使用key参数将sum_num函数传入sort函数后会将列表num中的所有列表元素传入sum_num函数进行计算计算得到的结果为[3,5,1,5]。然后sort()函数将依据这个计算结果对num进行排序。则排序完成后的num列表内容为:[1,12,5,23] 刚刚分析过程对应的运行截图