如何理解和使用 Python 中的列表

阅读本篇大概需要 6 分钟。
昨天写了一篇 我到底有多么努力 之后,收到很多评论和感动。
评论中大多数人都讲到自己也在努力,我也相信只要你们一直坚持那么绝对会变得更好。引用其中的一个评论,“努力是为了让儿时的白日梦得以实现”。
至于感动,我很感谢你们能去肯定我的付出,感动你们对我用心写文章的肯定。谢谢。
开始扯技术之前,多说一句。大家应该也都知道我的文章九成以上都是原创,只有那么一两篇是帮朋友发的。为了保证公号内容的质量所以我不愿意多去写一些别人的东西或者大量的转载文章。就算是要转载的文章,我也会先去通读这篇文章,从这篇文章中汲取营养,同时再加入自己的思考,最后我才会分享出来。
至于为什么一个技术公号会分享一些个人的、非技术的内容,这个问题目前并没有读者问过我。但我想主动回答这个问题,一是因为这个公号是个人的,二来技术永远都是枯燥的,如果一直讲技术我相信坚持读下来的人会很少。所以,我才决定时不时的分享一些个人的经历、工作、以及一些互联网的思维。
好了,正题。
话说回来,作为一个 Python 初学者若你读了 这是一篇 Python 入门级别的文章 和 Python 中应该注意的编码问题 这两篇文章,我相信你应该可以去编写一些简单的代码。但这些远远是不够的,这两篇文章更多的是让你有勇气的站到了 Python 这个 “大门” 的门口。
那么接下来,看完这篇文章才算是真正打开了这扇门。
这篇内容会深入到 Python 的语法中去,内容是关于 Python 中列表的概念、以及如何使用列表。
列表是什么?
官话是这么说的,列表是由一系列按特定顺序排列的元素组成。放到生活中的例子,比如你们家庭所有的姓名、年龄、身高,各自串起来它就可以分别形成一个列表。姓名的列表,年龄的列表,身高的列表。
回到 Python,在 Python 中用方括号 [ ] 来表示列表,并且用逗号来分隔其中的元素,比如:
>>> names = ['xiyouMc','帅超','超哥']>>> print(names)['xiyouMc', '\xe5\xb8\x85\xe8\xb6\x85', '\xe8\xb6\x85\xe5\x93\xa5']
这就是一个列表,同时我把它通过 print 函数打印了出来,至于为什么转码为 \xe5.... 的,是因为写数据的时候会默认转码为 UTF-8 省存储,不懂得朋友回到上篇恶补下。
那么,已经看到了列表的样子,我们应该如何去访问这个列表呢?
访问列表元素
上面也提到了列表是按照特定顺序组成的,那么我们是不是可以通过某个元素的位置(索引)来访问这个元素呢?当然是可以的。
比如:
>>> names=['xiyouMc','帅超','超哥']>>> names[0]'xiyouMc'>>>
我们指定去访问第一个元素,那么将可以获取 names 列表中 0 位置(索引)的元素。
索引是什么?
在程序员的眼里,某一个数组(列表)的第 1 个数字并不是真正意义上的第一个。而是因为它的前面还有个数字,就是第 0 个数字。所以,你就会想到索引代表的就是位置,并且在计算机中有 0 这个索引。
回到列表,在 Python 中,第一个列表元素的索引就是 0 ,而不是1。所以以后和程序员聊天的话别跟他讲你是第一名或者 Top 1,你应该说你是第零名或者 Top 0。 (毫无违和感的段子)
那么在列表中以此类推,第二个列表元素的索引就是 1 ,第 N 的元素的索引也就是 N -1。
比如:
>>> names=['xiyouMc','帅超','超哥']>>> names[0]'xiyouMc'>>> names[2]'\xe8\xb6\x85\xe5\x93\xa5'>>>
如果在访问列表元素的时候,你指定不正确的索引值,那么将会报错,提示数组越界。
在 Python 中,索引值可以为负数,负数的意思并不是说第一个位置之前还有并行时空的元素,而是表示从数组后面的位置开始计算,比如 -1 就代表最后一个元素,-2 就代表倒数第二个元素:
>>> names=['xiyouMc','帅超','超哥']>>> names[-1]'\xe8\xb6\x85\xe5\x93\xa5'>>> names[-2]'\xe5\xb8\x85\xe8\xb6\x85'>>> names[-3]'xiyouMc'>>>
负索引的这种情况在实际开发中很实用,有时候你需要在不知道列表长度的情况下去访问最后的元素。这时候用负索引就可以一下子解决问题了。
在实际的代码中使用
如上 names 那个列表,我们现在需要把这个列表应用到一段文字中:
“xiyouMc is called 帅超 or 超哥”
>>> names=['xiyouMc','帅超','超哥']>>> content = names[0] + ' is called ' + names[1] + 'or' + names[2]>>> print(content)xiyouMc is called 帅超or超哥>>>
当然,你也可以通过负索引来组合起来。