符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明:
专业领域包括成都网站设计、成都做网站、外贸网站建设、成都商城网站开发、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。
一、基本形式
列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。
123
x = [4, 6, 2, 1, 7, 9]x.sort()print x # [1, 2, 4, 6, 7, 9]
如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢
12345
x =[4, 6, 2, 1, 7, 9]y = x[ : ]y.sort()print y #[1, 2, 4, 6, 7, 9]print x #[4, 6, 2, 1, 7, 9]
注意:y = x[:] 通过分片操作将列表x的元素全部拷贝给y,如果简单的把x赋值给y:y = x,y和x还是指向同一个列表,并没有产生新的副本。
另一种获取已排序的列表副本的方法是使用sorted函数:
1234
x =[4, 6, 2, 1, 7, 9]y = sorted(x)print y #[1, 2, 4, 6, 7, 9]print x #[4, 6, 2, 1, 7, 9]
sorted返回一个有序的副本,并且类型总是列表,如下:
1
print sorted('Python') #['P', 'h', 'n', 'o', 't', 'y']
二、自定义比较函数
可以定义自己的比较函数,然后通过参数传递给sort方法:
12345678910111213
def comp(x, y):if x y:return 1elif x y:return -1else:return 0 nums = [3, 2, 8 ,0 , 1]nums.sort(comp)print nums # 降序排序[8, 3, 2, 1, 0]nums.sort(cmp) # 调用内建函数cmp ,升序排序print nums # 降序排序[0, 1, 2, 3, 8]
三、可选参数
sort方法还有两个可选参数:key和reverse
1、key在使用时必须提供一个排序过程总调用的函数:
123
x = ['mmm', 'mm', 'mm', 'm' ]x.sort(key = len)print x # ['m', 'mm', 'mm', 'mmm']
2、reverse实现降序排序,需要提供一个布尔值:
123
y = [3, 2, 8 ,0 , 1]y.sort(reverse = True)print y #[8, 3, 2, 1, 0]
在Python中,默认所有正确的语法,包括标点符号都是【英文】,若输入了中文标点,则会报错【syntaxError:invalid syntax】(语法错误:无效语法)
Print() 打印内容
1. 输出显示数字:print(0),结果是0
2. 输出显示运算:print(1+1),结果是2
3. 输出任意内容,只要用单引号'括起来即可:print('牛'),结果是牛
4. 若碰到输出的内容,比如英文里有单引号的,则两种方法:
4.1 使用双引号括"起来即可:print("Let's go!"),结果是Let's go!
4.2 使用转义字符\': print('Let\'s go!')
5. 若输出的内容里,需要换行,则有两种方法:
5.1 需要用到三引号'''括起来即可:print('''第一行
第二行''')
结果如下:
第一行
第二行
5.2 使用转义字符:\n
Print("第一行\n第二行")
######延伸########
转义字符的用法:反斜杠+想要实现的转义功能首字母
eg:\n: newline 换行
\b: backspace 退格
\r: return 回车
常用的转义字符总结如下所示:
变量:
命名规范:
• 只能是一个词;
• 只能包含字母、数字和下划线;
• 不能以数字开头;
• 尽量描述包含的数据内容;
• 不要使用python函数名或关键字;
赋值符号 = 不是左边等于右边的意思,而是把右边的内容放到左边的盒子里,盒子也是有容量大小之分的,且有后来者居上的特性;
Eg: a=2 表示将2放到a这个盒子里;
a==2 表示a等于2
python没有大括号,大括号是C/C++、Java等语言用于标记语句块的语法,Python通过缩进标记语句块,不需要大括号。
a=1,b=1拆成2条语句,或者写成a=b=1
F=a+b,b=a,a=F
把上面的语句拆分成三条语句即可。
函数
Python的函数支持递归、默认参数值、可变参数,但不支持函数重载。为了增强代码的可读性,可以在函数后书写“文档字符串”(Documentation Strings,或者简称docstrings),用于解释函数的作用、参数的类型与意义、返回值类型与取值范围等。可以使用内置函数help()打印出函数的使用帮助。
以上内容参考:百度百科-Python
赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。
浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}
深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}
和其他语言不一样,传递参数的时候,python不允许程序员选择采用传值还是传引用。
Python参数传递采用的肯定是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。
python一般内部赋值变量的话,都是传个引用变量,和C语言的传地址的概念差不多。可以用id()来查询内存地址
如果a=b的话, a和b的地址是相同的;如果只是想拷贝,那么就得用 a=b[:]。
1. 函数赋值只是把函数名赋值给变量,并不是执行函数,有无返回值都可以;
例如:a = function
2. 如果把调用函数赋值给变量,才是函数返回值赋值给变量;
如果没有返回值,赋值变量的值为None;
例如 a = function( params )