我要悄悄学Python之列表(二)

在学习之前,需要各位小伙伴具有百度的搜索能力。本系列分享的每一章都是核心知识。在编程的过程当中遇到的问题可以自己百度可以解决的一定要自己解决,实在是不会再问问题。

前言

在上一次文章中,为大家分享了什么是列表,以及列表的增删改查的四种用法。跟着代码进行学习,相信大家应该可以学到不少的东西。

今天的这篇文章为大家分享的是如何组织列表。很多时候,我们需要控制列表内元素的顺序,有时候你可能希望,保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列表的方式。

下面我就对他们进行一一说明。

使用方法sort()对列表进行永久排序

Python方法sort()可以较为简便的就可以对列表进行排序。假设有一个汽车的列表,并要让其中的汽车按照字母顺序进行排列。

具体代码,如下所示:

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

运行结果,如下所示:

['audi', 'bmw', 'subaru', 'toyota']

从上面的代码可以看到,已经永久性的修改了列表元素的顺序,现在汽车是按照字母顺序排列的,再也无法恢复到原来的排列顺序了。

还可以按照字母顺序相反顺序排列列表元素,只需要向sort()方法传递参数reverse=True即可。下面示例将汽车列表按与字母顺序相反的顺序排列。

具体代码如下所示:

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)

运行结果,如下所示:

['toyota', 'subaru', 'bmw', 'audi']

同样的,对列表排序的修改也是永久性的。

使用函数sorted()对列表临时排序

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可以使用函数sorted()。函数sorted()让你能够按特定的顺序显示列表元素,同时不影响他们在列表中的原始排列顺序。

具体代码,如下所示:

cars = ['bmw', 'audi', 'toyota', 'subaru']


print('原始顺序')
print(cars)

print('修改后的顺序')
print(sorted(cars))

print('原始顺序')
print(cars)

运行结果,如下所示:

原始顺序
['bmw', 'audi', 'toyota', 'subaru']
修改后的顺序
['audi', 'bmw', 'subaru', 'toyota']
原始顺序
['bmw', 'audi', 'toyota', 'subaru']

使用sorted()函数对列表进行排序之后,列表的原始顺序是不会改变的。

同样的,也可以向函数sorted()传入参数reverse=True,即可按照字母顺序的相反顺序进行排列。

倒着打印列表

要反转元素的排列顺序,可以使用方法reverse()。

注意:这个方法并不是按着字母进行排序,而是将列表进行反转。

具体代码,如下所示:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print('反转前')
print(cars)


print('反转后')
cars.reverse()
print(cars)

运行结果,如下所示:

反转前
['bmw', 'audi', 'toyota', 'subaru']
反转后
['subaru', 'toyota', 'audi', 'bmw']

同样的方法reverse()也是永久的修改元素的排列顺序,但是也可以随时恢复原来的排列,只需要对列表再次reverse()即可。

确定列表长度

使用函数len()可以快速的获悉列表的长度。具体代码,如下所示:

cars = ['bmw', 'audi', 'toyota', 'subaru']
print(len(cars))

运行结果,如下所示:

4

函数len()的使用频率是比较高的,可以快速统计列表元素的总数。

注意Python计算列表的长度时,是从1开始计算的,但是索引却是从0开始计算的,因此这里你会很容易造成索引错误。

使用列表时避免索引错误

每个新人学习列表的时候,都会遇到一种错误,就是索引错误。假如一个包含三个元素的列表,但是却要你获取第四个元素。

具体代码,如下所示:

cars = ['bmw', 'audi', 'toyota']
print(cars[3])

运行结果,如下所示:

Traceback (most recent call last):
  File "demo6.py", line 2, in <module>
    print(cars[3])
IndexError: list index out of range

很明显出现了错误,超出了范围。意味着Python在指定索引处找不到元素。

别忘记了,在上一篇文章的时候说过,每当要访问最后一个元素时,可以使用索引-1。但是,当列表为空的时候,就会出现错误。

注意,当你出现索引错误的时候,不妨把列表打印出来,也许它可能与你所想的完全不同。

最后

没有什么事情是可以一蹴而就的,生活如此,学习亦是如此!

因此,哪里会有什么三天速成,七天速成的说法呢?

唯有坚持,方能成功!

啃书君说

文章的每一个字都是我用心敲出来的,只希望对得起每一位关注我的人。在文章末尾点【】,让我知道,你们也在为自己的学习拼搏和努力。

路漫漫其修远兮,吾将上下而求索

我是啃书君,一个专注于学习的人,你懂的越多,你不懂的越多。更多精彩内容,我们下期再见!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容