python 有已有的列表排序新列表_自问自答掌握Python列表排序。你也可以的

废话篇

我们老祖宗早就说出了一个颠簸不破的道理:凡事预则立,不预则废。

所以,学习Python前我做的准备工作就是:

准备一台安装了Anaconda 3开源发行版本的电脑,Anaconda 3集合3.6版本的Python与可视化编程工具Spyder。

提问篇

好了,废话了那么多,现在进入正题。鉴于本章分享的是学习Python列表元素排序的主知识点,那就要在学习前提出问题,带着问题进入学习状态。

1、是否有专门的排序方法?

2、是否也是存在三种排序方式:顺序、倒序、乱序?

3、执行排序操作后,是否会新建列表对象?

4、纯属的数字列表,是否存在求最大、最小、和这样类似运算?

解答篇

带着上面的问题,我开始进入学习状态。

一、了解到Python提供排序方法,并且可以实现顺序、倒序、乱序三中排序方式。

1、sort()方法

列表对象调用sort()方法可以实现列表元素的顺序或倒序排序。

顺序:列表对象.sort()倒序:列表对象.sort(reverse = True)自己动手敲出代码:

a = [7,9,2,89,54,35,76,24,19,99,12]a.sort() #顺序排序print(a)a.sort(reverse = True) #倒序排序print(a)

2、random

列表打乱顺序需要引入一个模块random,在是用该模块中的shuffle()方法来实现。

直接敲出代码吧:

import randomrandom.shuffle(b)print(b)

代码运行效果见图:

排序案例

二、需要验证上面两种方法是否会在内存中新建一个列表对象。如果没有的话,那Python是否提供了其他方法呢?

还是采用上面案例中已经创建的列表对象:

1、先看看操作排序前的列表地址

id(a)id(b)

2、进行排序操作并再次查看列表地址

判断是否新建列表对象案例

3、sorted():新建列表对象的排序

直接上案例演示图,说服力更强。

sorted()案例

结论:

sorted()排序后,会在内存中创建新的列表对象。应用:游戏程序中用来洗牌的时候可以用到sorted()方法。

三、Python也提供求最大、最小、和的方法,分别himax()、min()、sum()

上案例效果图:

衍生篇

一、Python提供了一个迭代器的概念,这是在提问篇没想到的问题,所以我们放到这里来学习。

二、对于逆序排序,我们是否可以利用前面学过的知识呢?譬如列表的切片。

上案例效果图:

结论:

迭代器产生类似指针的东西;迭代器产生的内容只能被读取一次,并可写入新的列表对象内存中;可以采用列表切片的方式实现列表逆序排序。感言:

编程语言的学习就是一个多练习的过程。在不停地敲代码过程中理解Python精义,在理解的过程中又用敲代码的方式来解答与验证自己的疑问点,逐渐巩固自己对Python这门语言的理解,直至掌握,无捷径可走。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值