为了账号安全,请及时绑定邮箱和手机立即绑定

请教排序()和反向()函数不工作

请教排序()和反向()函数不工作

一只甜甜圈 2019-08-03 11:03:23
排序()和反向()函数不工作根据我正在阅读的教程,我试图测试python中的列表是如何工作的。当我试图用list.sort()或list.reverse(),翻译给我None.请告诉我如何从这两种方法中得到结果:a = [66.25, 333, 333, 1, 1234.5]print(a.sort())print(a.reverse())
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

.sort().reverse()更改列表就位回归None可变序列文档:

这个sort()和reverse()方法在排序或反转大列表时,为节省空间而修改列表。为了提醒您,它们是按副作用操作的,它们不会返回排序列表或反向列表。


而是这样做:


a.sort()

print(a)

a.reverse()

print(a)

或使用sorted()reversed()职能。


print(sorted(a))               # just sorted

print(list(reversed(a)))       # just reversed

print(a[::-1])                 # reversing by using a negative slice step

print(sorted(a, reverse=True)) # sorted *and* reversed

这些方法返回一个新的列出并保持原始输入列表不变。


演示、就地排序和倒转:


>>> a = [66.25, 333, 333, 1, 1234.5]

>>> a.sort()

>>> print(a)

[1, 66.25, 333, 333, 1234.5]

>>> a.reverse()

>>> print(a)

[1234.5, 333, 333, 66.25, 1]

并创建新的排序和反向列表:


>>> a = [66.25, 333, 333, 1, 1234.5]

>>> print(sorted(a))

[1, 66.25, 333, 333, 1234.5]

>>> print(list(reversed(a)))

[1234.5, 1, 333, 333, 66.25]

>>> print(a[::-1])

[1234.5, 1, 333, 333, 66.25]

>>> print(sorted(a, reverse=True))

[1234.5, 333, 333, 66.25, 1]

>>> a  # input list is untouched

[66.25, 333, 333, 1, 1234.5]




查看完整回答
反对 回复 2019-08-05
?
撒科打诨

TA贡献1934条经验 获得超2个赞

一个简单的升序排序非常容易,调用排序()函数。它返回一个新的排序列表:


>>> sorted([66.25, 333, 333, 1, 1234.5])

[1, 66.25, 333, 333, 1234.5]

接受带有布尔值的反向参数。


>>> sorted([66.25, 333, 333, 1, 1234.5], reverse=True)

[1234.5, 333, 333, 66.25, 1]




查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 406 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信