一:sort和sorted函数
1.代码比较
print('sorted函数')
a=['c','python','java','c++','c#']
b=sorted(a)
print('排序前的列表:{0}'.format(a))
print('排序后的列表:{0}'.format(b))
print('-----------------------------')
print('sort函数')
a=['c','python','java','c++','c#']
b=a.sort()
print('排序前的列表:{0}'.format(a))
print('排序后的列表:{0}'.format(b))
2.结果展示
sorted函数
排序前的列表:['c', 'python', 'java', 'c++', 'c#']
排序后的列表:['c', 'c#', 'c++', 'java', 'python']
-----------------------------
sort函数
排序前的列表:['c', 'c#', 'c++', 'java', 'python']
排序后的列表:None
3.总结
1.sort和sorted函数的区别(自我总结):
(1)sorted函数和sort函数的用法不同,sorted(list)和list.sort();
(2)sorted函数并不改变原来列表的值,而sort函数改变原来的是原来列表的值。
2.菜鸟教程sorted函数 上的总结:
(1)sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
(2)list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
3.sorted函数的用法(从 python3菜鸟教程 拷贝的):
sorted 语法:
sorted(iterable, key=None, reverse=False)
参数说明:
- iterable -- 可迭代对象。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值
返回重新排序的列表。
【注】对sorted函数详细介绍可参考 菜鸟教程sorted函数。
4.sort函数的用法(从 python3菜鸟教程 拷贝的):
list.sort(cmp=None, key=None, reverse=False)
参数
- cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
返回值
该方法没有返回值,但是会对列表的对象进行排序。
【注】对sorted函数详细介绍可参考 菜鸟教程 list sort。
二:=和==
1.代码比较
print('=')
a=['c','python','java','c++','c#']
b=a
b.append('ML')
print('增加参数前:{0}'.format(a))
print('增加参数后:{0}'.format(b))
print('------------------------------')
print('==')
a=['c','python','java','c++','c#']
b==a
b.append('ML')
print('增加参数前:{0}'.format(a))
print('增加参数后:{0}'.format(b))
2.结果展示
=
增加参数前:['c', 'python', 'java', 'c++', 'c#', 'ML']
增加参数后:['c', 'python', 'java', 'c++', 'c#', 'ML']
------------------------------
==
增加参数前:['c', 'python', 'java', 'c++', 'c#']
增加参数后:['c', 'python', 'java', 'c++', 'c#', 'ML', 'ML']
3.总结
1.b=a,可理解为,a为一个指针,指向一个地址address,b也为一个指针,当做赋值语句b=a时,b也指向和a相同的地址address。由于a和b指向的是同一个地址单元,所以当地址单元里面的数发生改变的时候,a和b会同时发生变化。
2.b==a,可理解为,a为一个指针,指向一个地址address,b也为一个指针,但是当做赋值语句b==a时,系统给b重新分配了一个地址单元address1,address1里面存放的是从address拷贝过来的数据。由于a和b指向的地址单元不同,所以当其中一个改变时,另一个并不会受到影响。