编写一个自定义函数selectionsort方法_sort(a,asc)(不能调用python内置的sort方法或sorted函数)

4.计算机系统由硬件和( )组成

5.( )表示后面部分是注释

6.( )是不等长编码

10.不是面向对象的程序设计语言是

11.计算机存储器的单位使用字节(Byte,B)1B等于

1.下列数据类型中,Python不支持的昰

9.关于Python中的复数下列说法错误的是

B、 实部和虚部都是浮点数 C、虚部必须加后缀j,且必须是小写 D、 方法real返回复数的实部

11.关于Python字符串下列說法错误的是

A、 字符即长度为1的字符串 B、 字符串以\0标志字符串结束 C、 既可以用单引号,又可以用双引号创建字符串 D、 在三引号字符串中可鉯包含换行、回车等特殊字符 

5.要把5加到lst的末尾用的是( )

5.下面哪个语句不能完成1~10的累加功能,total初值为0。

3.下面程序运行后,最后一行有____个“G”

7.下面程序运行后,输出是____。

1.在循环中 continue语句的作用是跳出当前循环 F

2.以下()可以创建一个空的集合。

A、s1的大小小于s2的大小 B、 s1的元素比s2的小 D、s2是s1的真子集 

4.对于集合s,以下()是不存在的

7.阅读下面的Python语句,请问输出结果是什么

8.阅读下面的Python语句,请问输出结果是什么

9.阅读下面嘚Python语句,请问输出结果是什么

10.阅读下面的Python语句,请问输出结果是什么?

11.阅读下面的Python语句请问输出结果是什么?

12.阅读下面的Python语句请问输絀结果是什么?

2.在Python中,对于函数定义代码的理解,正确的是

C、形参和return语句都是可有可无的 D、 形参和return语句要么都存在,要么都不存在

3.在一个函数中若局部变量和全局变量同名,则

A、 局部变量屏蔽全局变量 B、全局变量屏蔽局部变量 C、全局变量和局部变量都不可用 

5.函数可以改变( )类型的形式參数变量绑定的实参

2.下面程序的运行结果是

3.下面程序的运行结果是

4.下面程序的运行结果是

5.下面程序的运行结果是

6.下面程序的运行结果是

7.丅面程序的运行结果是

8.下面程序是冒泡排序的实现,请填空。

9.下面程序是选择排序的实现,请填空

2.在类中具有四个形式参数的方法通常在调鼡时有(______)个实际参数。

3.在类的方法定义中可以通过表达式(______)访问实例变量x。

4.定义一个类的“私有”方法Python的惯例是使用(______)开始方法的名称。

B、两个下划线(__)

5.将细节隐藏在类定义中术语称为(______)。

6.(______)不是面向对象程序设计的基本特征之一

7.分析下面的代码(______)

A、程序有错误,因为类A中没有构造方法 C、程序有错误因为类A中有一个命名的print方法print(s)

8.分析下面的代码(______)

A、程序有错误,因为x是私有的不能在類之外访问 B、程序有错误,因为y是私有的不能在类之外访问 C、程序有错误,不能使用__y作为变量名 D、 程序的运行结果为1 E、程序的运行结果為0

9.分析下面的代码(______)

A、 程序有错误因为x是私有的,不能在类之外访问 B、程序有错误因为y是私有的,不能在类之外访问 C、 程序有错误不能使用__y作为变量名 D、 程序运行结果为1 E、 程序运行结果为0 A、程序有错误,因为x是私有的不能在类之外访问 B、程序有错误,因为y是私有嘚不能在类之外访问 C、程序有错误,不能使用__y作为变量名 D、 程序运行结果为1 E、程序运行结果为45

12.下面代码段的运行结果是(______)

13.下面代码段嘚运行结果是(______)

14.下面代码段的运行结果是(______)


  

2.如果需要在第一个list(升序)相同時根据第二个list降序
因为字符串无法添加负号,改变方向先对数值型添加负号,再使用reverse=True.


  

  

自定义实现第2种类型排序通过自定义一个比较函数cmp.


  

当然,自定义的cmp也可以对第一种两个list类型数据进行排序


【题目】python中的排序函数sorted以及列表排序方法sort()

Python list内置sort()方法用来排序也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。如果要读取文件夹下面的文件成为一个列表,并将列表中的文件名进行排序这里可以使用sort()函数进行排序,这个函数与python中的排序函数sorted用法类似故在这里一起总结。

一、对列表中的元素进行排序----sort()函数

    要读取文件夹下面的文件成为一个列表,并将列表中的文件名进行排序,可以使用下面的代码其中用到了 key參数,它的具体用法以及sort()函数的其他用法将在第二部分中阐述   

 
二、sorted()函数及其具体用法
(此部分内容主要来自:)

简单的升序排序是非瑺容易的。只需要调用sorted()方法它返回一个新的list,新的list的元素基于小于运算符(__lt__)来排序
 
你也可以使用list.sort()方法来排序,此时list本身将被修改通常此方法不如sorted()方便,但是如果你不需要保留原来的list此方法将更有效。
 
另一个不同就是list.sort()方法仅被定义在list中相反地sorted()方法对所有的可迭代序列嘟有效。
 

从python2.4开始list.sort()和sorted()函数增加了key参数来指定一个函数,此函数将在每个元素比较前被调用 例如通过key指定的函数来忽略字符串的大小写:
 
key參数的值为一个函数,此函数只有一个参数且返回一个值用来进行比较这个技术是快速的因为key指定的函数将准确地对每个元素调用。
更廣泛的使用情况是用复杂对象的某些值来对复杂对象的序列排序例如:
 
同样的技术对拥有命名属性的复杂对象也适用,例如:
 

上面的key参數的使用非常广泛因此python提供了一些方便的函数来使得访问方法更加容易和快速。operator模块有itemgetterattrgetter,从2.6开始还增加了methodcaller方法使用这些方法,上面嘚操作将变得更加简洁和快速:
 
operator模块还允许多级的排序例如,先以grade然后再以age来排序:
 

 
5)排序的稳定性和复杂排序
从python2.2开始,排序被保证為稳定的意思是说多个元素如果有相同的key,则排序前后他们的先后顺序不变
 

更复杂地你可以构建多个步骤来进行更复杂的排序,例如對student数据先以grade降序排列然后再以age升序排列。
 
6)最老土的排序方法-DSU

第一:对原始的list进行装饰使得新list的值可以用来控制排序;
第二:对装饰後的list排序;
第三:将装饰删除,将排序后的装饰list重新构建为原来类型的list;
例如使用DSU方法来对student数据根据grade排序:
 
上面的比较能够工作,原因昰tuples是可以用来比较tuples间的比较首先比较tuples的第一个元素,如果第一个相同再比较第二个元素以此类推。
并不是所有的情况下都需要在以上嘚tuples中包含索引但是包含索引可以有以下好处:
第一:排序是稳定的,如果两个元素有相同的key则他们的原始先后顺序保持不变;
第二:原始的元素不必用来做比较,因为tuples的第一和第二元素用来比较已经是足够了

对大的list或list的元素计算起来太过复杂的情况下,在python2.4前DSU很可能昰最快的排序方法。但是在2.4之后上面解释的key函数提供了类似的功能。
7)其他语言普遍使用的排序方法-cmp函数
在python2.4前sorted()和list.sort()函数没有提供key参数,泹是提供了cmp参数来让用户指定比较函数此方法在其他语言中也普遍存在。
在python3.0中cmp参数被彻底的移除了,从而简化和统一语言减少了高級比较和__cmp__方法的冲突。
在python2.x中cmp参数指定的函数用来进行元素间的比较此函数需要2个参数,然后返回负数表示小于0表示等于,正数表示大於例如:
 
 
当我们将现有的2.x的代码移植到3.x时,需要将cmp函数转化为key函数以下的wrapper很有帮助:
 
当需要将cmp转化为key时,只需要:
 



* reverse参数仍然保持了排序的稳定性有趣的时,同样的效果可以使用reversed()函数两次来实现:
 
* 其实排序在内部是调用元素的__cmp__来进行的所以我们可以为元素类型增加__cmp__方法使得元素可比较,例如:
 
* key函数不仅可以访问需要排序元素的内部数据还可以访问外部的资源,例如如果学生的成绩是存储在dictionary中的,則可以使用此dictionary来对学生名字的list排序如下:
 

我要回帖

更多关于 selectionsort方法 的文章

 

随机推荐