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的更多相关文章

  1. (python函数02)列表生成式

    (python函数02)列表生成式 示例代码  num = [i for i in range(1, 10)] print(num) ​ num = [i for i in range(1, 10) ...

  2. python学习笔记——列表生成式与生成器

    1.列表生成式(List Comprehensions) python中,列表生成式是用来创建列表的,相较于用循环实现更为简洁.举个例子,生成[1*1, 2*2, ... , 10*10],循环用三行 ...

  3. Python学习3——列表和元组

    一.通用序列操作——索引.切片.相加.相乘.成员资格检查 1.索引,正序从0开始为第一个元素,逆序从-1开始,-1为最后一个元素 >>> greeting[0] 'h' >&g ...

  4. python学习之列表的定义以及增删改查

    列表定义: >>> name['lily','lucy','tom'] >>> nums = [11,22,33,'100','lily'] #python中的列表 ...

  5. Python学习--02输入和输出

    命令行输入 x = input("Please input x:") y = raw_input("Please input x:") 使用input和raw_ ...

  6. Python学习06——列表的操作(2)

    笨办法学Python第39节 之前用的第三版的书,昨天发现内容不对,八块腹肌又给我下了第四版,这次的内容才对上.本节的代码如下: ten_things = "Apples Oranges C ...

  7. python学习04——列表的操作

    笨办法学python第38节 如何创建列表在第32节,形式如下: 本节主要是讲对列表的操作,首先讲了 mystuff.append('hello') 的工作原理,我的理解是,首先Python找到mys ...

  8. python学习之列表语法

    1.列表 1 list.append(obj)在列表末尾添加新的对象2 list.count(obj)统计某个元素在列表中出现的次数3 list.extend(seq)在列表末尾一次性追加另一个序列中 ...

  9. python学习笔记——列表操作

    python列表操作——增 append:追加一条数据到列表的最后 name = ["Zhangsan","XiongDa","Lisi"] ...

随机推荐

  1. BrowserSync - 浏览器同步测试工具

    背景: 之前在学gulp的时候,使用gulp-livereload来实时自动刷新页面省时开发,但一直比较难用,现在找到新的替代神器. 安装:   // 使用淘宝镜像会快些 npm install -g ...

  2. [Python] py2exe先知其然

    #Hello.py import Tkinter root=Tkinter.Tk() label=Tkinter.Label(root,text="Hello,py2exe!") ...

  3. Linux下通过源码编译安装程序

    本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...

  4. 利用ListView的基本方法实现效果

    日常的开发工作经常需要ListView作为布局的组件,而且很多时候都会遇到需要自定义ListView的情况. 也有些问题并不需要自定义的ListView,基于原生的ListView就能实现,但需要灵活 ...

  5. java中复制对象通过反射或序列化

    在使用缓存读取数据后修改发现缓存被修改.于是找了下复制对象的方法. 关于对象克隆 按我的理解,对象是包含引用+数据.通常变量复制都是将引用传递过去.比如: Person p1 = new Person ...

  6. 关于Entity Framework中的Attached报错相关解决方案的总结

    关于Entity Framework中的Attached报错的问题,我这里分为以下几种类型,每种类型我都给出相应的解决方案,希望能给大家带来一些的帮助,当然作为读者的您如果觉得有不同的意见或更好的方法 ...

  7. Moon.Orm 5.0(MQL版)及之前版本的开源计划

    开源综述:步步开源 Moon.Orm 5.0 (MQL版) 版本维护及下载 (跟踪发布) Moon.Orm 5.0系列文章 Moon.Orm 5.0性能问题,将发言权交给你! 一.5.0目前的情况,步 ...

  8. Windows Server 2012 配置多用户远程桌面

    前段时间因为需要多用户同时远程连接 windows server 2012,但找了半天也没找到远程桌面管理,最后从搜索中找到如下方法,经测试可行! 打开注册表,进入路径: [HKEY_LOCAL_MA ...

  9. jquery基本选择器(.class选择器)

    //通过class属性值匹配元素<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...

  10. mybatis笔记2 基础理论准备

    之前发了一篇mybatis的crud入门笔记,算是入门了,为了让功力加深一级,来研究下mybatis的理论知识,哈哈,以后好拿来跟技术经理吹吹牛- 按照问题来吧!个人觉得有自主意识,带着自己的问题来研 ...