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

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

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

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

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超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-07-12
?
守候你守候我

TA贡献1802条经验 获得超10个赞


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


>>> 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-07-12
  • 3 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

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