2、Python序列

序列是一种数据存储方式,类似于C语言的数组。简单的说序列是一块用来存储多个值的连续内存空间,同一个序列的元素通常是相关的。

Python中常用的序列结构有列表、元组、字典、字符串、集合等,字典和集合是无序的,其他三个都支持双向索引。一般0为第一个序列,但是python可以用负数做下标序列,最后一个下标为-1,之前的为-2,以此类推。

2.1列表

列表的所有元素放在一堆方括号中相邻元素之间用逗号分开,元素扩充或删除时,列表自动扩充或缩减,但尽量向列表末尾进行增删操作。同一列表中元素类型可以不同,可以是基本类型,也可以是序列类型。

2.1.1列表的创建和删除

创建:a_list=[]空列表

a_list=['a','b','zxlc']

也可以用list()函数将元组、range对象、字符串或其他类型的对象转换成列表例如:

a_list=list((3,5,7,9))  #将元组转换成列表

list(range(1,10,2) #将range对象转换成列表(range函数:第一个参数是起始数,第二个参数是终止数,第三个数是步长)

list('hello world')    #将字符串转换成列表

x=list()        #创建空列表

删除:del a_list

2.1.2列表元素添加

1、append()方法,在列表末尾添加一个元素

a_list.append(i)

2、+,创建一个新列表,在旧列表后加上这个新列表

a_list=a_list+[i]

3、extend()方法可以将其他元素放在后面

4、insert()方法可以按元素顺序插入元素

5、用乘法来扩展列表对象,将列表与整数相乘,生成一个新序列,新序列是之前序列的重复,相当于另外创建了一个序列(id不同)

2.1.3列表元素删除

1、使用del命令删除列表中的指定位置上的元素。

a_list=[3,5,7,9,11]

del a_list[1]

a_list

[3,7,9,11]

2、pop()方法删除并返回指定位置上的元素(默认为最后一个),如果指定的索引超出了范围,就抛出异常。

3、remove()方法删除首次出现的指定元素,如果列表中不存在这个元素,则抛出异常。

***每次执行完插入和删除操作,元素的索引都会改变

2.1.4列表元素查询和计数

查询可以直接用下标

index()函数可以查看指定元素的索引

count()函数可以计数某元素出现的次数

2.1.5判断元素是否在列表中

用in

3 in a_list

2.1.6切片操作

切片使用两个冒号分隔的三个数字来完成:第一个数字为切片开始位置(默认为0);第二个数字为切片截止(但不包含)位置(默认为列表长度),第三个数字为切片的步长(默认为1),当步长省略时,最后一个冒号也可以省略

例如 aList=[3,4,5,6,7,9,11,13,15,17]

>>>aList[::-1]

[17,15,13,11,9,7,6,5,4,3]

>>>aList[::2]

[3 ,5,7,11,15]

用切片复制列表是一个中浅克隆,而直接列表等号赋值是深克隆。

2.1.7列表排序

利用sort()函数,返回排序后的原列表。

默认为升序:aList.sort()

改为降序:aList.sort(reverse=true)

利用sorted()函数,返回排序后的新列表

2.1.8列表中常用的方法

1、cmp()比较大小

2、len()返回列表长度

3、max()、min()返回列表的最大最小值

4、sum()返回列表值的和

5、zip()将多个列表或元组对应位置的元素组合成为元组并返回包含这些元组的zip对象

alist=[1,2,3]

blist=[4,5,6]

clist=[7,8,9]

dlist=zip[alist,blist,clist]

dlist

[(1,4,7),(2,5,8),(3,6,9]

2.1.9列表推导式

>>>alist=[x*x for x in range(10)]

相当于

>>>alist=[]

>>>for x in range(10):

alist.append(x*x)

2.2元组

元组为不可变序列,元组一旦创建,用任何办法都无法修改其元素的值,也无法增加删除元素,确实需要修改则可以再创建一个元组。放在一对圆括号中。

2.2.1元组创建

a_tuple=('a','b')

如果仅仅创建一个只有一个元素的元组,那么在这个元素后需要加一个逗号,不然会认为是该元素本身。

2.2.2元组删除

del()

2.2.3元组和序列的区别

1、元组不可变,所以不能有增删改元素;序列可变,有许多函数可以增删改元素

2、元组通过tuple()函数可以冻结列表使其不可变;而列表通过list()函数可以融化元组,使其可变。

不过元组中的元素可以包含可变的序列。

2.2.4序列解包

在元组中,可以用序列解包进行多变量同时赋值

>>>x,y,z=1,2,3

>>>print(x,y,z)

在字典中,默认是对字典的键操作,如果需要对键值对操作,需要使用字典的items()方法,如果需要对字典的值操作,则需要使用字典的values()方法指定。

>>>a=[1,2,3]

>>>b,c,d=a

>>>s={'a':1,'b':2,'c':3}

>>>b,c,d=s.itmes()

>>>b

('a',1)

>>>b,c,d=s

>>>b

'a'

>>>b,c,d=s.values()

>>>print(b,c,d)

1 3 2

2.2.5生成器推导式

用圆括号,返回为一个生成器对象,可以将其强转为一个列表或者一个元组,也可以使用生成器对象的_next_()方法进行遍历,或者直接将其作为迭代器对象来使用,不过只能访问一次,还想访问需要重新创建。

>>>g=((i+2)**2 for i in range(10))

这是个生成器对象,意为4,9,16.。。。,121

>>>g.next()

4

>>>g.next()

9

python元组支持双向索引吗_2、Python列表和元组相关推荐

  1. python中元组支持双向索引吗_Python 元组支持双向索引

    Python 元组支持双向索引 答:对 下面关于USB的叙述,错误的是____________ 答:USB接口连接的设备必须另外供应电源 中轴骨骼:包括().脊柱.( )和肋骨 答:胸骨 头骨 中国大 ...

  2. python双向索引什么意思_python字典支持双向索引吗

    Python中的字典是另一种可变容器模型,且可存储任意类型对象.字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,字典是无序 ...

  3. python中双向索引_Python 字典支持双向索引。Python 集合也支持双向索引

    Python 字典支持双向索引.Python 集合也支持双向索引 答:错 推的策略适用于用户多而广,需求总量大的产品促销 答:× 中国保险条款中属于一般附加险别的有( ) 答:短量险 钩损险 Next ...

  4. python慕课笔记_MOOC python笔记(三) 序列容器:字符串、列表、元组

    Python Python开发 Python语言 MOOC python笔记(三) 序列容器:字符串.列表.元组 容器概念 容器是Python中的重要概念,分为有序与无序. 有序容器也称为序列类型容器 ...

  5. Python基础之 3. 容器:字符串、列表、元组、字典

    0. 下标和切片 1. 下标索引 所谓"下标",就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间 字符串中"下标"的使用 列表与元组支持 ...

  6. python列表元组字符串都属于有序数列_列表、元组、字符串是Python的__________(有序、无序?)序列。...

    [简答题]朗读d教科书第35页"貿易レターコラム 消費価格値上げ再考のお願い"的李文,直接读标题,然后读"拝啓"和全文.注意作业提交截止日期. [多选题]以下语 ...

  7. [转载] python字符串数组字典_Python:字符串、列表、元组、字典

    参考链接: Python字符串| ascii_uppercase 字符串: 所有方法都修改不了字符串的值,字符串还是原值:但可以重新赋值:使用字符串方法有返回值 循环字符串的用法: 字符串方法: Na ...

  8. python内置函数可以返回列表元组_Python内置函数()可以返回列表、元组、字典、集合、字符串以及range对象中元素个数....

    Python内置函数()可以返回列表.元组.字典.集合.字符串以及range对象中元素个数. 青岛远洋运输有限公司冷聚吉船长被评为全国十佳海员.()A:错B:对 有源逆变是将直流电逆变成其它频率的交流 ...

  9. 无限遍历,Python实现在多维嵌套字典、列表、元组的JSON中获取数据

    背景 在做接口自动化的过程中,接口返回的数据是  列表字典循环嵌套  格式的,所以怎样通过一个key值,获取到被包裹了多层的目标数据成为了摆在我面前的一个问题. 一开始没想自己写,但是搜索后发现虽然很 ...

最新文章

  1. 【工具使用系列】关于 MATLAB 液压元件,你需要知道的事
  2. Pandas 4 个小 trick,都很实用!
  3. VTK:图像加权和用法实战
  4. 微云存照片会变模糊吗_QQ相册里的照片,为什么放一段时间就会变模糊?今天可算知道了...
  5. linux 为什么要安装gcc和gcc-c++(又叫做g++)
  6. SpringCloud(三) Eureka之服务注册发现以及实现工程间调用
  7. 无人驾驶飞机来了!空难后波音的电动飞机你敢乘吗?
  8. 【观点讨论与支撑】科研学习的过程真的是枯燥的乏味的吗?
  9. android+祖玛游戏源码,Flash祖玛游戏源代码
  10. 【网络原理】数据链路层
  11. Bypass功能depletion mode
  12. 软件测试视频教程下载:APP测试类型和方法
  13. qt中使用mysql模糊查询_mysql数据库模糊查询简介
  14. matlab2019b的gui界面在哪_MATLAB(3)——GUI界面设计入门
  15. 小学计算机课评价方案,小学信息技术学科考核评价方案
  16. 使用OpenSSL生成证书 pem文件的生成 celery Security
  17. 《信息检索》课程笔记
  18. Linux内核版本说明
  19. 根据阿里GeoJSON格式生成全国Shp矢量边界
  20. 三农数据(1996-2020)十六:农产品进出口、农村居民纯收入、消费支出及结构

热门文章

  1. 3.1 再论 0/1 分类问题-机器学习笔记-斯坦福吴恩达教授
  2. lwip 开发 sntp 与 tcp 不能同时工作的奇怪问题
  3. Android 重新编译资源文件
  4. 【PC工具】微软OneNote使用笔记,onenote无法连接网络无法同步解决方法
  5. 北京、广东重名数量查询工具,给孩子起名重名查询
  6. 标准输入/出与重定向
  7. 《Atlas基础教程》勘误(持续更新)
  8. B-树和B+树的应用:数据搜索和数据库索引
  9. 新建idea加入的一句话,键值对
  10. 比世界纪录快3倍 阿里云377秒完成100TB数据排序