Python 数据类型(2)

Python 数据类型(2)

1.序列

序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间
Python3 中一切皆对象,在内存中实际是按照如下方式存储的
a = [10,20,30,40]
请添加图片描述
从图示中,我们可以看出序列中存储的是整数对象的地址,而不是整数对象的值。python 中常用的序列结构有: 字符串、列表、元组、字典、集合


2.列表

列表是可变类型
列表:用于存储任意数目、任意类型的数据集合
列表是内置可变序列,是包含多个元素的有序连续的内存空间(序列)。
列表定义的标准语法格式: a = [10,20,30,40]。
10,20,30,40 这些称为:列表 a 的元素。 列表中的元素可以各不相同,可以是任意类型,如a = [‘abc’,20,True,‘你好’]

列表对象的常用方法
请添加图片描述

2.1列表的创建

2.1.1基本语法[]创建
a = [10,20,'abc','你好'] 
a = [] #创建一个空的列表对象
2.1.2list()创建

使用 list()可以将任何可迭代的数据转化成列表

>>> a = list() #创建一个空的列表对象
>>> a = list(range(10)) 
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
>>> a = list("hello world") 
>>> a 
['h', 'e', 'l', 'l', '0', ' ', 'w', 'o', 'r', 'l', 'd']
2.1.3range()创建整数列表

range([start,] end [,step]) (取值范围 [ , ),起始值可以取,结尾值不可取 )
start 参数:可选,表示起始数字。默认是 0
end 参数:必选,表示结尾数字。
step 参数:可选,表示步长,默认为 1
range()返回的是一个 range 对象,而不是列表。需要通过 list()方法将其 转换成列表对象。
请添加图片描述

2.1.4推导式生成列表

使用列表推导式可以非常方便的创建列表
请添加图片描述

2.2列表元素的增加

当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这 个特点涉及列表元素的大量移动,效率较低。除非必要,一般只在列表的尾部添加元素或删除元素,这会大大提高列表的操作效率。

2.2.1append()方法

列表结尾追加数据,追加一个序列时,整个序列加到列表结尾
列表序列.apptend(数据)
请添加图片描述

2.2.2+运算符操作

创建新的列表对象,将原列表的元素和新列表的元素依次复制到新的列表对象中。
请添加图片描述
通过如上测试,我们发现变量 a 的地址发生了变化。也就是创建了新的列表对象。

2.2.3extend()方法

列表结尾追加数据,如果数据是一个序列,则将序列数据逐一添加到列表。
列表序列.extend(数据)
请添加图片描述

2.2.4insert()插入元素

指定位置新增数据。
列表序列.insert(位置下标,数据)
请添加图片描述

2.2.5乘法扩展

使用乘法扩展列表,生成一个新列表,新列表元素时原列表元素的多次重复。
请添加图片描述

2.3列表元素的删除

2.3.1del 删除

删除列表指定位置的元素,可配合下标使用

>>> a = [100,200,888,300,400] 
>>> del a[1] 
>>> a 
[100,200,300,400]
2.3.2pop()方法

pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。
请添加图片描述

2.3.3remove()方法

删除首次出现的指定元素,若不存在该元素抛出异常。
请添加图片描述

2.4列表元素查找和计数

2.4.1通过索引(下标)查找元素
name_list = ['Tom','Lily','Rose']
print(name_list[0]) #Tom
print(name_list[1]) #Lily
print(name_list[2]) #Rose
2.4.2index()获得指定元素在列表中首次出现的索引

返回指定数据所在位置的下标
列表序列.index(数据,开始位置,结束位置)
查找数据不存在会报错
请添加图片描述

2.4.3count()获得指定元素在列表中出现的次数

统计指定数据在当前列表中出现的次数
请添加图片描述

2.4.4len()返回列表长度

计算列表长度,即列表中数据个数
请添加图片描述

2.4.5判断元素是否存在

in:判断指定数据是否在某个序列,在返回True,否则False。
not in: 判断指定数据是否在某个序列,在返回False,否则True。
请添加图片描述

2.5切片操作

切片 slice 操作可以让我们快速提取子列表或修改。
标准格式为: [起始偏移量 start:终止偏移量 end:[步长 step]]
注:当步长省略时顺便可以省略第二个冒号.
切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始 偏移量小于 0 则会当做 0,终止偏移量大于“长度-1”会被当成”长度-1”。

2.6列表的遍历

请添加图片描述

2.7复制列表所有的元素到新列表对象

capy()
请添加图片描述

2.8列表排序

2.8.1修改原列表,不建新列表的排序

sort() ,默认是升序排列。sort(reverse=True),降序排列。

#打乱顺序
import random 
random.shuffle(a)

请添加图片描述

2.8.2建新列表的排序

sorted()排序(默认升序),这个方法返回新列表,不对原列表做修改。
请添加图片描述

2.8.3reversed()返回迭代器排序

内置函数 reversed()也支持进行逆序排列,与列表对象 reverse()方法不同的是,内置函数 reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象。
请添加图片描述

2.9列表相关的其他内置函数汇总

max 和 min
用于返回列表中最大和最小值
请添加图片描述

sum
对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。
请添加图片描述

2.10多维列表(列表嵌套)

一维列表可以帮助我们存储一维、线性的数据。 二维列表可以帮助我们存储二维、表格的数据。
请添加图片描述

3.元组 tuple

元组属于不可变序列,不能修改元组中的 元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
1. 通过()创建元组。小括号可以省略。
a = (10,20,30) 或者 a = 10,20,30
如果元组只有一个元素,则必须后面加逗号。解释器会把(1)解释为整数 1
请添加图片描述

2. 通过 tuple()创建元组
tuple(可迭代的对象)
请添加图片描述
3.生成器推导式创建元组
请添加图片描述

总结:
tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。

3.1元组的元素访问和计数

下标
请添加图片描述

index():查找某个数据,数据存在返回对应下标,否则报错。
请添加图片描述

count():统计某个数据出现的次数
请添加图片描述

len():统计元组中数据的个数
请添加图片描述

排序
sorted(tupleObj),并生成新的列表对象。
请添加图片描述

3.2zip

zip(列表 1,列表 2,…)将多个列表对应位置的元素组合成为元组,并返回这个 zip 对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值