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

原创 马超 DeveloperPython 2017-10-28

阅读本篇大概需要 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超哥>>>

当然,你也可以通过负索引来组合起来。

(0)

相关推荐

  • Python中tuple和list的区别?基础学习!

    想必大家都知道,Python数据类型有很多种,其中有两个对象的写法非常相似,它就是tuple元组和list列表,让人傻傻分不清楚.那么你知道Python中tuple和list有什么区别吗?我们来看看具 ...

  • Common encryption methods and implementation in Python Python中常用的加密方法及实现

    Common encryption methods and implementation in Python Python中常用的加密方法及实现

  • Python|列表和元组

    问题描述1.如何用Python内置的一种数据类型,即列表对元素进行查找.增加.删除.2.元组与列表有什么区别呢?解决方案1.用一个列表示出同学的名字,然后用索引来查到每一个名字的位置,但记得索引是从0 ...

  • tuple和list有什么区别?Python学习

    在Python中,list代表列表,tuple代表元组,那么它们之间有何区别呢?如何进行区分?我们通过以下文章来了解一下吧. list: 1.是一种有序的集合,可以随时添加和删除其中元素; 2.访问l ...

  • RealPython 基础教程:Python 中的列表和元组

    列表(list)和元组(tuple)几乎可称得上是 Python 中最常用.最有用的数据类型了.在每个非简单的 Python 中,你都能发现它们的使用之处. 本文将介绍 list 和 tuple 的重 ...

  • 关于python中if __name__ == '__main__':的理解

    调试代码的时候都会写上if __name__ == '__main__':,然后写上数据进行调试,一直没有理解到这句的含义,就照搬着写,到现在才算理解到,大概说下自己的见解. 1.在python里__ ...

  • Python中什么是有序序列?列表元组及字符串

    Q:Python中的列表.元组.字符串是有序序列吗? A:当然,列表.元组.字符串是Python中的有序序列,其中列表是可变对象,元组和字符串是不可变对象,接下来我们一起来看看具体的内容介绍吧. 什么 ...

  • Python中的多态如何理解?

    Python中多态的作用 让具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容(功能)的函数. Python中多态的特点 1.只关心对象的实例方法是否同名,不关心对象所属的类型 ...

  • 如何用外行容易理解的语言解释Python中的概念?

    Python编程学习圈 2021-07-30 现如今,编程已经成为一个非常普遍的技能,很多工作中都可以用上.于是,作为程序员,经常会被周围人(比如自己的女朋友)问到关于编程是什么的问题. 今天给大家分 ...

  • 一文理解 Python 中的变量

    " 变量让程序活起来,不再千人一面." 我们在之前的文章<Python 基本数据类型介绍>中了解了如何创建各种基本类型的数据,但是我们的例子中使用的都是"字面 ...

  • python中的other.a怎么理解?

    表白:黑白圣堂血天使,天剑鬼刀阿修罗.  讲解对象:/python中的other.a怎么理解? 作者:融水公子 rsgz Python3 教程 Python3 教程 http://www.rsgz.t ...

  • Python中列表常见的方法有哪些?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • Python中的数组(列表)

    2021-01-03 19:46:09 ~疆 码龄4年 关注 目录 数组的基本用法 处理函数:min().max().sum() 修改元素 增加元素:append() 删除元素 使用del 使用pop ...