# 第二章:列表和元组
序列中,每个元素都有个一个序号,序号以0开始,最后一个元素序号为-1,倒数第二个-2
序列类型包括,列表,元组,字符串,unicode字符串,buffer, xrange
列表可以修改,元组不可以修改,元组可以作为字典的key,列表不可以
列表中的元素可以是各种类型,各元素通过逗号分隔,写在方括号中
>>> edward=["edward", 42]
>>> print edward
['edward', 42]
>>>
>>> print edward[0]
edward
>>> print edward[1]
42
>>> print edward[2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> print edward[-1]
42
>>> print edward[-2]
edward
>>> print edward[-3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
使用索引访问序列中的一个元素
使用分片访问一定范围内的元素,通过冒号分隔的两个索引来获取分片[begin,end],内容包含begin到end之间的元素,不包含end所在位置的元素,
如果end大于最大的索引号,则返回包含最末尾的元素为止
如果end小于begin,返回空分片
如果end缺失,则返回begin之后剩余所有的元素,包含begin位置
如果begin缺失,则返回end之前的所有的元素
如果begin,end都缺失,返回所有元素
>>> numbers=[1,2,3,4,5,6,7,8,9,10]
>>> numbers[3:6]
[4, 5, 6]
>>>
>>> numbers[7:12]
[8, 9, 10]
>>> numbers[7:4]
[]
>>> numbers[7:]
[8, 9, 10]
>>> numbers[:3]
[1, 2, 3]
>>> numbers[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>
分片的步长[being:end:step],step表示遍历元素使用的步长,即每隔step个元素,step默认为1,
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
step不可以为0,可以为负,表示从右到左提取元素
>>> numbers[8:3:-1]
[9, 8, 7, 6, 5]
>>>
序列相加:使用加号,相同类型的序列才可以相加
>>> c=[1,2,3]
>>> d=["a", "b", "c"]
>>> c+d
[1, 2, 3, 'a', 'b', 'c']
>>> e="helloworld"
>>> c+e
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list
>>>
序列乘法:数字x可以序列,表示原来的序列重复x次
>>> "python"*3
'pythonpythonpython'
>>>
None:表示空值,但是占有一个元素的位置
>>> []
[]
>>> [None]
[None]
>>>
查找:in
>>> 1 in numbers
True
>>> 122 in numbers
False
>>>
长度:最小最大值
>>> len(numbers)
10
>>> max(numbers)
10
>>> min(numbers)
1
>>>
list:将字符串转为序列
>>> list("helloworld")
['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd’]
修改一元素
>>> l[4:]=list("cn")
>>> l
['h', 'E', 'l', 'l', 'c', 'n']
>>>
删除元素:del
>>> del l[1]
>>> l
['h', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd']
>>>
修改多个元素
>>> l[4:]=list("cn")
>>> l
['h', 'l', 'l', 'o', 'c', 'n']
>>>
插入元素
>>> l
['h', 'l', 'l', 'o', 'c', 'n']
>>> l[1:1]="e"
>>> l
['h', 'e', 'l', 'l', 'o', 'c', 'n']
>>>
>>> l[5:5]=", world"
>>> l
['h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', 'c', 'n']
>>>
删除多个元素
>>> l[-2:]=[]
>>> l
['h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd']
>>>
>>> del l[-5:]
>>> l
['h', 'e', 'l', 'l', 'o', ',', ' ']
>>>
列表的常用方法
apend:追加新元素
>>> lst
[1, 2, 3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
count:统计元素出现的次数
>>> lst.count(3)
1
>>>
extend:追加一个列表
>>> lst
[1, 2, 3, 4]
>>> a
[5, 6, 7]
>>> lst.extend(a)
>>> lst
[1, 2, 3, 4, 5, 6, 7]
index:查找第一个次出现的位置
>>> lst.index(3)
2
insert:插入元素
pop:移除一个元素(默认是最后一个),并且返回该元素的值
>>> lst.pop()
7
remove:移除第一个匹配元素,改变列表,无返回值
>>> lst.remove(2)
>>> lst
[1, 3, 4, 5, 6]
>>>
reverse:反转列表,改变列表,无返回值
>>> lst.reverse()
>>> lst
[6, 5, 4, 3, 1]
>>>
sort:排序,改变列表,无返回值
>>> lst.sort()
>>> lst
[1, 3, 4, 5, 6]
>>>
sort(key=cmp,reverse=False)的参数:key比较函数,reverse反向排序
—————————————————————
## 元组:不可改变的序列
以逗号分隔的包含在圆括号内的值,称为元组,圆括号可以省略
>>> a=1,2,3,4,
>>> a
(1, 2, 3, 4)
>>>
包含一个元素的元组,需要在元素后添加逗号
>>> a=1,
>>> a
(1,)
>>> a=(1,)
>>> a
(1,)
>>> 3*(40+2,)
(42, 42, 42)
>>>
tuple:将列转为元组
>>> l
[1, 2, 3, 4]
>>> tuple(l)
(1, 2, 3, 4)
>>>
- python学习笔记之列表与元组
一.概述 python包含6种内建的序列,其中列表和元组是最常用的两种类型.列表和元组的主要区别在于,列表可以修改,元组则不能修改 使用上,如果要根据要求来添加元素,应当使用列表:而由于要求序列不可修 ...
- Python学习笔记_week2_列表、元组、字典、字符串、文件、i编码
一. 列表.元组 names=["A","B","C","D"] print(names) print(names[0] ...
- python学习笔记(2)--列表、元组、字符串、字典、集合、文件、字符编码
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表和元组的操作 列表是我们以后最长用的数据类型之一,通过列表可以最方便的对数据实现最方便的存储.修改等操作 定 ...
- python学习笔记(列表、元组、购物车实例)
一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...
- Python学习笔记只列表和元组
一.成员资格 1.检查某个字符是否在某个字符串中:'a' in 'absent' 2.获取数组的长度.最大.最小值: numbers=[100,54,345] len(numbers) //长度 ma ...
- python学习笔记整理——列表
Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...
- python学习笔记02--列表和元组
一.简介 数据结构是通过某种方式组织在一起的数据元素的集合. 序列是python中最基本的数据结构,python中包含6种内建的序列,分别是列表.元组.字符串.Unicode字符串.buffer对象和 ...
- python学习笔记(一)元组tuple
元组由简单的对象组构成,元组与列表相似,但是元组不能在原处修改.元组位置有序的对象集合,元组通过偏移来访问. 为什么有了列表还要元组?元组的不变性提供了某种完整性,可以确保元组在程序中不被另一个引用修 ...
- Python学习笔记(六)—元组的操作
元祖也是一个列表,它和list的区别是元祖里面的元素无法修改: 如果元祖里面只有一个元素的话,那么你必须在这个元素后边加上逗号,这样才是元祖的类型:否则类型会显示其他类型 元组的定义: 元祖中的方法: ...
- python学习笔记-列表和字典
由于最近在看深度学习的代码,看到需要建立字典和列表来存储什么东西的时候,就想要去把字典和列表好好的了解清楚,其应用范围,差别,等等东西 首先我们来介绍,在python中存在如下的数据结构:列表list ...
随机推荐
- 拦截窗体关闭、最大、最小事件 - Winform
RT,不赘述,代码以下: const int WM_SYSCOMMAND = 0x112; const int SC_CLOSE = 0xF060; const int SC_MINIMIZE = 0 ...
- javaWeb页面实现下载
jsp页面发送请求,后台实现指定路径下的文件,在浏览器上完成下载功能.@RequestMapping(value = "downloadFile")public void down ...
- Centos6增加新用户并赋予权限
第一步:创建用户并设置密码 useradd testuser // 增加用户名为'testuser'的用户 passwd testpasswd //设定密码为'testpasswd' 第二步:用户授权 ...
- java打包项目将配置文件放在包外面(后续还会有补充)
项目中也经常单独将一部分功能独立做Java Project,然后打成jar包供其他项目调用.如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采用jar包读取外 ...
- 《android开发艺术探索》读书笔记(四)--View工作原理
接上篇<android开发艺术探索>读书笔记(三) No1: View的三大流程:测量流程.布局流程.绘制流程 No2: ViewRoot对应于ViewRootImpl类,它是连接Wind ...
- Appium安卓真机环境搭建
说明 步骤可能比较简洁,因为手头上有安卓测试机,所以需要配置虚拟机的童鞋请去虫师博客园,因为我也是从那儿学的,哈哈.点我飞到虫师那儿 但是如果你要搭建真机测试环境的话,本教程将是最简单实用的. 1. ...
- 设置TCP_USER_TIMEOUT参数来判断tcp连接是否断开
[TOC] 1. bug描述 前段时间遇到这样的一个问题,openstack一个控制节点宕机后,在宕机后一段时间内创建的虚拟机,一直卡在创建中的状态.有的甚至要等到16分钟之后虚拟机才会切换到下一个状 ...
- Java中集合List,Map和Set的区别
Java中集合List,Map和Set的区别 1.List和Set的父接口是Collection,而Map不是 2.List中的元素是有序的,可以重复的 3.Map是Key-Value映射关系,且Ke ...
- MFC中CFileDialog用法
用CFileDialog选择了一个文件后,使用FILE::fopen打开文件错误,使用 的是相对地址,和王工调试了半天,怎么跟踪也没发现错误,原来如此......... CFileDialog文件选择 ...
- @postconstruct初始化的操作
从Java EE 5规范开始,Servlet中增加了两个影响Servlet生命周期的注解(Annotion):@PostConstruct和@PreDestroy.这两个注解被用来修饰一个非静态的vo ...