# 第二章:列表和元组
序列中,每个元素都有个一个序号,序号以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 ...
随机推荐
- Tesseract OCR win 32位编译
https://github.com/tesseract-ocr/tesseract/wiki/Compiling 找到该标题:Develop Tesseract 按照上面的步骤执行即可,最后使用 v ...
- GB 标准
std::map<int, std::string> GB2261 = { { 0,"未知的性别" }, { 1,"男性" }, { 2," ...
- c#IO的学习
常见应用方面 一.路径的相关操作,如判定路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容:二.相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录:三.文件.目录 ...
- UVA1213
先打表,再回溯+剪枝 AC代码: #include<cstdio> #include<cstring> #include<cmath> const int maxn ...
- mysql常用基础操作语法(八)~~多表查询合并结果和内连接查询【命令行模式】
1.使用union和union all合并两个查询结果:select 字段名 from tablename1 union select 字段名 from tablename2: 注意这个操作必须保证两 ...
- Mongodb3.0.5副本集搭建及spring和java连接副本集配置
这是去年写的一篇文档,最近突然发现并没有发不出来,因此现在补上,希望能对某些朋友有所帮助.因为当时记录时没有截图,因此这里看起来可能就比较单调. 一.基本环境: mongdb3.0.5数据库 spri ...
- 笔记︱信用风险模型(申请评分、行为评分)与数据准备(违约期限、WOE转化)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 巴塞尔协议定义了金融风险类型:市场风险.作业风 ...
- Android HTTP请求用HttpUrlConnection与HttpClient比较
在安卓和JAVA应用开发中需要访问网络,少不了要提交HTTP请求,而基本上目前有两个实现方式:HttpUrlConnection(即URL.openConnection)和HttpClient. 网上 ...
- 用SPSS 画 人口金字塔(限SPSS 13.0以上)
现在网络上人口金字塔较多的是用excel来实现(可参考链接),但是用spss的步骤又很不明确,于是乎,想着自己试试. 在 SPSS 软件中,绘制人口金字塔是 SPSS13.0 新增的一种图形, 因此只 ...
- Java中过滤出字母、数字和中文的正则表达式
1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [^(A-Za-z)] (2)过滤出数字的正则表达式 [^(0-9)] (3)过滤出中文的正则表达式 [^(\\u4e0 ...