# 第二章:列表和元组
 
序列中,每个元素都有个一个序号,序号以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学习笔记】2.列表和元组的更多相关文章

  1. python学习笔记之列表与元组

    一.概述 python包含6种内建的序列,其中列表和元组是最常用的两种类型.列表和元组的主要区别在于,列表可以修改,元组则不能修改 使用上,如果要根据要求来添加元素,应当使用列表:而由于要求序列不可修 ...

  2. Python学习笔记_week2_列表、元组、字典、字符串、文件、i编码

    一. 列表.元组 names=["A","B","C","D"] print(names) print(names[0] ...

  3. python学习笔记(2)--列表、元组、字符串、字典、集合、文件、字符编码

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1.列表和元组的操作 列表是我们以后最长用的数据类型之一,通过列表可以最方便的对数据实现最方便的存储.修改等操作 定 ...

  4. python学习笔记(列表、元组、购物车实例)

    一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...

  5. Python学习笔记只列表和元组

    一.成员资格 1.检查某个字符是否在某个字符串中:'a' in 'absent' 2.获取数组的长度.最大.最小值: numbers=[100,54,345] len(numbers) //长度 ma ...

  6. python学习笔记整理——列表

    Python 文档学习笔记 数据结构--列表 列表的方法 添加 list.append(x) 添加元素 添加一个元素到列表的末尾:相当于a[len(a):] = [x] list.extend(L) ...

  7. python学习笔记02--列表和元组

    一.简介 数据结构是通过某种方式组织在一起的数据元素的集合. 序列是python中最基本的数据结构,python中包含6种内建的序列,分别是列表.元组.字符串.Unicode字符串.buffer对象和 ...

  8. python学习笔记(一)元组tuple

    元组由简单的对象组构成,元组与列表相似,但是元组不能在原处修改.元组位置有序的对象集合,元组通过偏移来访问. 为什么有了列表还要元组?元组的不变性提供了某种完整性,可以确保元组在程序中不被另一个引用修 ...

  9. Python学习笔记(六)—元组的操作

    元祖也是一个列表,它和list的区别是元祖里面的元素无法修改: 如果元祖里面只有一个元素的话,那么你必须在这个元素后边加上逗号,这样才是元祖的类型:否则类型会显示其他类型 元组的定义: 元祖中的方法: ...

  10. python学习笔记-列表和字典

    由于最近在看深度学习的代码,看到需要建立字典和列表来存储什么东西的时候,就想要去把字典和列表好好的了解清楚,其应用范围,差别,等等东西 首先我们来介绍,在python中存在如下的数据结构:列表list ...

随机推荐

  1. angular4升级angular5问题记录之this.location.back()

    在之前的项目中,导航回上一个路由采用注入的Location服务,利用浏览器的历史堆栈,导航到上一步. 官方文档也就是这么写的 而然在升级到5.2的版本的时候,在浏览器运行的时候并没有什么问题,在项目打 ...

  2. Spring中的@scope注解

    默认是单例模式,即scope="singleton".另外scope还有prototype.request.session.global session作用域.scope=&quo ...

  3. 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)

    第一部分: http://www.cnblogs.com/cgzl/p/8478993.html 为Domain Model添加约束 前一部分, 我们已经把数据库创建出来了. 那么我们先看看这个数据库 ...

  4. 《python机器学习—预测分析核心算法》笔记1

    参见原书 1.1-1.4节 一.惩罚线性回归模型 基本特性: 1.训练时间快,使用训练好的模型进行预测的时间也快2.应用于高速交易.互联网广告的植入等3.解决回归.分类问题 最重要的特性:能明确指出, ...

  5. 使用lambda编程之延迟执行

    使用lambda表达式的主要原因是,将代码的执行延迟到一个合适的时间点. 所有的lambda表达式都是延迟执行的.毕竟,如果你希望立即执行一段代码,那就没有必要使用lambda表达式了.延迟执行代码的 ...

  6. PDO学习

    参考: http://php.net/manual/zh/pdostatement.fetch.php http://php.net/manual/zh/pdo.constants.php

  7. spider RPC更新至2.0.0-RELEASE

    spider使用java语言开发,使用Spring作为IoC容器,采用TCP/IP协议,在此基础上,结合SaaS金融交易系统的特性进行针对性和重点设计,以更加灵活和高效的满足金融交易系统多租户.高可用 ...

  8. Android自定义Seekbar滑动条,Pop提示跟随滑动按钮一起滑动

    由于项目需要做出此效果,自定义写了一个. 效果图 思路: 原始的seekbar只有滑动条并没有下方的提示文字,所以我们必须要继承Seekbar重写这个控件. 代码: 在values文件夹下新建attr ...

  9. 实战DeviceIoControl 之四:获取硬盘的详细信息

    Q 用IOCTL_DISK_GET_DRIVE_GEOMETRY或IOCTL_STORAGE_GET_MEDIA_TYPES_EX只能得到很少的磁盘参数,我想获得包括硬盘序列号在内的更加详细的信息,有 ...

  10. java线程池的原理及实现

    1.线程池简介:     多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力.         假设一个服务器完成一项任务所需时间为:T1 ...