Python的列表就像是一个数组:

一、创建列表

movies=["The Holy Grail","Then Life of Brian","The Meaning of Life"]

这里的movies是一个变量,而且不需要声明变量的类型。

数组是从0开始计数的。如果要访问列表里的数据,可以这样:

['The Holy Grail', 'Then Life of Brian', 'The Meaning of Life']
>>> movies[1]
'Then Life of Brian'
The Holy Grail的索引是0,Then Life of Brian的索引是1,The Meaning of Life的索引是2.
整个列表中有3个数据项,用len()函数:
>>> print(len(movies))
3

可以看到答案是3。

二、操作列表

1、添加数据项

用append()方法可以在列表末尾添加一个数据项:

>>> movies.append("Titanic")
>>> print(movies)
['The Holy Grail', 'Then Life of Brian', 'The Meaning of Life', 'Titanic']

2、移除数据项

用pop()方法可以从列表的末尾移除一个数据项,让我想到了从栈中弹出。

 ['The Holy Grail', 'Then Life of Brian', 'The Meaning of Life', 'Titanic']
>>> movies.pop()
'Titanic'

第三行显示Titanic从列表中移除了,真的吗?让我们看看现在的电影列表里还有些什么:

 >>> movies.pop()
'Titanic'
>>> print(movies)
['The Holy Grail', 'Then Life of Brian', 'The Meaning of Life']

是的,列表中只有3个数据项了,Titanic已被移除。

3、添加数据项集合

用extend()方法可以在列表末尾增加一个数据项集合,就是和另一个列表合并。

先创建另一个列表:

>>> myList=['Cleese', 'Palin', 'Jones', 'Idle']

然后用extend()方法把这个myList列表添加到movies列表的后面:

 >>> myList=['Cleese', 'Palin', 'Jones', 'Idle']
>>> movies.extend(myList)
>>> print(movies)
['The Holy Grail', 'Then Life of Brian', 'The Meaning of Life', 'Cleese', 'Palin', 'Jones', 'Idle']

可以看到myList列表已经添加到了movies列表的后面。

4、删除特定数据项

如果要删除某个数据项——注意不是从列表的末尾移除,可以用remove()方法,括号内写要删除的数据项名字。

 >>> movies.remove("Cleese")
>>> print(movies)
['The Holy Grail', 'Then Life of Brian', 'The Meaning of Life', 'Palin', 'Jones', 'Idle']

可以看到Cleese已经从列表中删除了。

5、在某个位置添加数据项

用insert()方法可以在列表的任意位置添加数据项。

 >>> movies.insert(0,"Hello World")
>>> print(movies)
['Hello World', 'The Holy Grail', 'Then Life of Brian', 'The Meaning of Life', 'Palin', 'Jones', 'Idle']

我们已经知道列表的计数是从0开始的,所以这里Hello World就被添加到了列表的开头。

练习题:

如果要得到这样的一个列表该怎么办?

["The Holy Grail", 1975, "The Life of Brian", 1979, "The Meaning of Life", 1983]

本以为刚学到的insert(),append()等方法会派上用场,而且感觉是个活学活用的好主意。可是书上的答案是第二种——直接手写出这个列表,免去了一些计算,因为这是一个小列表。

这让我想到Python的设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言(称为The Zen of Python)里面表述为:

There should be one - and preferably only one - obvious way to do it.

--End--

Python学习笔记 第一课 列表的更多相关文章

  1. python学习笔记(一)、列表和元祖

    该一系列python学习笔记都是根据<Python基础教程(第3版)>内容所记录整理的 1.通用的序列操作 有几种操作适用于所有序列,包括索引.切片.相加.相乘和成员资格检查.另外,Pyt ...

  2. 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

    blog.csdn.net/totogo2010/article/details/8205810  目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ...

  3. Python学习笔记四:列表,购物车程序实例

    列表 切片 中括号,逗号分隔,可以一次取出多个元素,起始位置包括,结束位置不包括(顾头不顾尾) 如果取最后一个,而且不知道列表长度,可以使用负数(-1是最后一个,以此类推) 如果取最后几个,记住从左往 ...

  4. python 学习笔记二 (列表推导式)

    2018年年初写了第一篇博客,说要做一个认真的技术人 https://www.cnblogs.com/yingchen/p/8455507.html 今天已经是11月19日了,这是第二篇博客,看来坚持 ...

  5. Python学习,第一课 - 基础学习

    前言. 本内容全部以python3所讲 一.Python安装 windows 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\pyth ...

  6. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  7. python学习笔记4(列表)

    列表是最通用的Python复合数据类型,列表中包含以逗号分隔,并在方括号([])包含的项目. 在一定程度上,列表相似C语言中的数组,它们之间的一个区别是,所有属于一个列表中的项目可以是不同的数据类型的 ...

  8. python学习笔记之一:列表与元组

    最近在看<python基础教程>(基于python2.x),下面总结一下第二章列表与元组的知识: 在这章中引入了数据结构的概念.数据结构是通过某种方式组织在一起的数据元素的集合.在pyth ...

  9. 【python学习笔记】2.列表和元组

    # 第二章:列表和元组   序列中,每个元素都有个一个序号,序号以0开始,最后一个元素序号为-1,倒数第二个-2 序列类型包括,列表,元组,字符串,unicode字符串,buffer, xrange ...

随机推荐

  1. mongodb 新建用户 -摘自网络

    随着版本的更新,对在使用mongodb的业务也进行了版本升级,但是在drop掉一个数据库时,问题来了,原来的用户随着删除库也被删除掉,但是再想通过原来的语法db.addUser()添加,一直报错,提示 ...

  2. c# socket编程简单例子

    服务器端代码 using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Thr ...

  3. Spring入门(7)-自动检测Bean

    Spring入门(7)-自动检测Bean 本文介绍如何自动检测Bean. 0. 目录 使用component-scan自动扫描 为自动检测标注Bean 1. 使用component-scan自动扫描 ...

  4. zoj 1610 Count the Colors

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=610  Count the Colors Time Limit:2000MS   ...

  5. AVCaptureDevice

    转载自:http://blog.csdn.net/andy_jiangbin/article/details/19820717   0.媒体采集的几个东西.这里所需要明白的是,在这个流程中,这里会存在 ...

  6. Windows xp下IDT Hook和GDT的学习

    一.前言   对于IDT第一次的认知是int 2e ,在系统调用的时候原来R3进入R0的方式就是通过int 2e自陷进入内核,然后进入KiSystemService函数,在根据系统服务调用号调用系统服 ...

  7. 分析恶意驱动(进程启动apc注入dll)

    一.前言  用IDA也有好些时间了,以前就只会用F5功能玩无壳无保护的裸驱动,感觉太坑了,这两天就开始看网上大牛的逆向. 今天记录一下sudami曾经逆向过的fuck.sys.第一遍自己走的时候漏掉了 ...

  8. MVC神韵---你想在哪解脱!(十四)

    修正票价字段的精度 前面我们追加数据的时候遗留下来一个问题,就是在追加数据的时候,票价(Price)字段中输入的是9.99元,但是电影清单显示画面中该数据的票价字段显示为10元,这是为什么?这个问题发 ...

  9. Linux下C程序的编辑,编译和运行以及调试

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  10. C++ 临时对象

    1.什么是临时对象? swap方法中,常常定义一个temp对象,这个temp对象不是临时对象,而是局部对象.这里所说的临时对象是不可见的,在原代码中是看不到的. 2.为什么会产生临时对象? a.客户期 ...