Python学习02 列表 List
Python学习02 列表 List
Python列表 List
Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between square brackets)。
一个Python列表例子:
movies = ['Hello', 'World','Welcome']
在Python中创建列表时,解释器会在内存中创建一个类似于数组的数据结构来存放数据,数据项自下而上堆放(形成一个堆栈)。
列表数据的访问
一般访问索引
可以像访问数组元素一样取用列表中的元素:用方括号加上索引号,索引号从0开始:
>>> names=['Jack','Meng','Mike']
>>> print(names[0])
Jack
>>>
负数索引
索引值也可以从后往前,依次是-1,-2,……
比如:
>>> movies=['hello','world','welcome',10]
>>> movies[-1]
10
>>> movies[-4]
'hello'
切片(slice)操作
用冒号分隔要访问的数据索引的起点和终点,包含前者,不包含后者。
冒号前面的数字和后面的数字都可以省略,省略前者代表最首,省略后者代表最尾。
一段小例子:
movies = ['Hello','World','Welcome']
print(movies)
#positive index
print("index 0: " + str(movies[0]))
#negtive index
print("index -1: " + str(movies[-1]))
#slice
print("slice 0-1: " + str(movies[0:1]))
print("slice all: " + str(movies[:]))
print("slice 2-: " + str(movies[2:]))
print("slice -2: " + str(movies[:-2]))
这段程序的执行结果是:

使用切片还可以增加数据或者插入数据,用法很灵活。
#assignment: change the list to 3 items
movies[0:]=['first','second','third']
print(movies) #insert: change 1 item to 3 items
movies[0:1]=['first01','first02','first03']
print(movies) #delete: delelte the first 2 items
movies[0:2]=[];
print(movies)
执行结果:

列表比数组更强大
首先,不限制数据类型,列表中各种数据可以混合存储,不一定是同种类型。
比如下面这样完全没问题:
movies = ['Hello','World','Welcome',10,30.5]
其次,列表可以嵌套,即列表中的元素也可以是一个列表。
比如:
movies = ['Hello','World','Welcome',10,30.5,['cat','dog']]
['cat','dog']就是列表中的一个项,自己也是一个列表,可以继续往下嵌套。
访问的时候这样访问:
print(movies[5][1])
输出dog
List类型的内置方法
见链接:http://docs.python.org/2/tutorial/datastructures.html#more-on-lists
在Python Shell中输入:dir(__builtins__)
可以看到所有的内置函数(BIF)。(注意前面和后面都是两个下划线)。
参考资料
官网Tutorial:
http://docs.python.org/2/tutorial/introduction.html#lists
http://docs.python.org/2/tutorial/datastructures.html#more-on-lists
同事推荐:
http://zhgdg.gitcafe.com/static/doc/byte_of_python.html
《Head First Python》(设计模式之后真是爱上了Head First系列的书)。
Python学习02 列表 List的更多相关文章
- (python函数02)列表生成式
(python函数02)列表生成式 示例代码 num = [i for i in range(1, 10)] print(num) num = [i for i in range(1, 10) ...
- python学习笔记——列表生成式与生成器
1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...
- Python学习3——列表和元组
一.通用序列操作——索引.切片.相加.相乘.成员资格检查 1.索引,正序从0开始为第一个元素,逆序从-1开始,-1为最后一个元素 >>> greeting[0] 'h' >&g ...
- python学习之列表的定义以及增删改查
列表定义: >>> name['lily','lucy','tom'] >>> nums = [11,22,33,'100','lily'] #python中的列表 ...
- Python学习--02输入和输出
命令行输入 x = input("Please input x:") y = raw_input("Please input x:") 使用input和raw_ ...
- Python学习06——列表的操作(2)
笨办法学Python第39节 之前用的第三版的书,昨天发现内容不对,八块腹肌又给我下了第四版,这次的内容才对上.本节的代码如下: ten_things = "Apples Oranges C ...
- python学习04——列表的操作
笨办法学python第38节 如何创建列表在第32节,形式如下: 本节主要是讲对列表的操作,首先讲了 mystuff.append('hello') 的工作原理,我的理解是,首先Python找到mys ...
- python学习之列表语法
1.列表 1 list.append(obj)在列表末尾添加新的对象2 list.count(obj)统计某个元素在列表中出现的次数3 list.extend(seq)在列表末尾一次性追加另一个序列中 ...
- python学习笔记——列表操作
python列表操作——增 append:追加一条数据到列表的最后 name = ["Zhangsan","XiongDa","Lisi"] ...
随机推荐
- chrome dev debug network 的timeline说明
在使用chrome的时候F12的开发者工具中有个network,其中对每个请求有个timeline的说明,当鼠标放上去会有下面的显示: 这里面的几个指标在说明在chrome使用文档有说明: 下面我用人 ...
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要五
本篇文章主要是总结异步编程的知识点,也是本系列的最后一篇文章,每一个知识点我都有写出示例代码,方便大家理解,若发现有误或不足之处还请指出,由于书中作者对此知识点讲解过于简单,所以在写这篇文章时本人参考 ...
- 搭建 Hexo Blog
一.教程参考:https://xuanwo.org/2015/03/26/hexo-intor/ 二.命令总结 1.node -v.npm -v:查看 node.js 是否安装成功 2.npm ins ...
- 近期总结:generator-web,前端自动化构建的解决方案
本文结合最近的工作经验,总结出一个较简洁的前端自动化构建方案,主张css和js的模块化,并通过grunt的自动化构建,有效地解决css合并,js合并和图片优化等问题,对于提高前端性能和项目代码质量有一 ...
- 【转】Key/Value之王Memcached初探:一、掀起Memcached的盖头来
一.Memcached是何方神圣? 在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的HttpRuntim ...
- .NET Core配置文件加载与DI注入配置数据
.NET Core配置文件 在以前.NET中配置文件都是以App.config / Web.config等XML格式的配置文件,而.NET Core中建议使用以JSON为格式的配置文件,因为使用起来更 ...
- Liskov替换原则
一.定义 子类型必须能替换掉它们的基类型 二.提取公共部分的方法代替继承 如果一组类都支持一个公共的职责,那么它们应该从一个公共的超类继承该职责. 如果公共的超类不存在,那么就创建一个,并把公共的职责 ...
- Cygwin的安装
Android开发要用到NDK,装了一个虚拟机,老是不行. 后来安装了一个cygwin,安装完毕后unset home,再export NDK,就可以使用了,非常方便,不用像虚拟机那样经常切换.
- hibernate简单注释(一.1)
**************************************************************************************************** ...
- spring的事务操作
我们项目一期已经差不多结束了,所以一些细节也被拿了出来,出现最多的就是事务的操作了.因为自己负责的是一个模块(因为是另外一个项目的负责人),所以组员经常会遇到事务的问题,会出现很多奇葩的用法,各种乱用 ...