1.1Python中的数据结构

可变与不可变

**不可变数据类型**:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
**可变数据类型**:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。
**总结**:不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变。

python中6个标准数据类型

1.列表list=[] 显著特征:可变,有序,多元,正反索引。

x = [1,2,3]
y = {“name”:“xueyuan9527”}
z = “test”
a = [x,y,z]
a
[[1, 2, 3], {‘name’: ‘lilei’}, ‘xueyuan9527’]

1.1正反索引

list正反索引

1.2可变 insert() 、remove()、del、pop()、pop(i)、append()

1.2.1

week = [“Monday”,“Tuesday”,“Wednesday”,“Thursday”,“Friday”,“Saturday”,“Sunday”]
print(week)
#利用.insert()将元素添加到指定位置
week.insert(0,“7days”)
print(week)
#利用.append()为列表末尾添加元素
week.append(“one day”)
print(week)
#利用.pop()删除末尾元素
week.pop()
print(week)
#利用.remove删除指定元素
week.remove(“Wednesday”)
print(week)
#列表的可修改性
week[1:1] = [“TrueOneDay”]
print(week)
del week[3:4]
print(week)
利用正反索引对元素进行查找

1.2.1对元素修改可以直接赋值替换

1.2.2列表中还有其他方法如pop()删除末尾元素,pop(i)删除指定位置i的元素,append()向末尾添加元素

1.2.3list函数 可以通过list将序列创建为列表

Python中包含6中內建的序列:列表,元组,字符串、Unicode字符串、buffer对象和xrange对象。

list(“Hello,World”)
[‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘,’, ‘W’, ‘o’, ‘r’, ‘l’, ‘d’]

其实list为一种类型并非函数,但此处二者并无多大区别。tuple、dict都如此。

2 元组tuple 不可修改性(不包含元组内的其他组成元素)

2.1元组 不支持对元素的修改

t1 = (1,2,3,4,5)
t1
(1, 2, 3, 4, 5)
t1[2] = 9
Traceback (most recent call last):
File “<pyshell#21>”, line 1, in
t1[2] = 9
TypeError: ‘tuple’ object does not support item assignment
t1[2:2] = 8
Traceback (most recent call last):
File “<pyshell#22>”, line 1, in
t1[2:2] = 8
TypeError: ‘tuple’ object does not support item assignment
t1[2]
3

2.2元组 支持对组成元组的其他元素的修改

t2 = (“a”,“b”,[“1”,“2”])
t2
(‘a’, ‘b’, [‘1’, ‘2’])
t2[2][0] = “学员”
t2[2][1] = “9527”
t2
(‘a’, ‘b’, [‘学员’, ‘9527’])

2.2.1在上面这个例子中,其实改变的不是元组,而是组成元组的列表元素。

2.2.2因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple并且需要注意元 组中元素的可变性!!

2.2.3空的tuple可以记为(),若只有一个元素的tuple记为(1,)
因为记为(1)的话,这个实际代表的是数字1,此时()是数学公式中的小括号

2.2.4因为元组是固定的列表,所以其内置的大多数的方法和列表是差不多的。

2.2.5可以通过tuple将序列转换为元组,用法和list一样

tuple(“Hello,World”)
(‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘,’, ‘W’, ‘o’, ‘r’, ‘l’, ‘d’)

3 字典dict

3.1 字典这个概念就是基于现实生活中的字典原型,生活中的使用名称-内容对数据进行构建,Python中使用键(key)-值(value)存储.

3.2 dict的显著特征

3.2.1字典中的数据必须以键值对的形式出现

3.2.2键不可重复,值可重复(键若重复字典中只会记该键对应的最后一个值)

3.2.3字典中键(key)是不可变的,为不可变对象,不能进行修改;而值(value)是可以修改的,可以是任何对象

3.2.4在dict中是根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了

3.3 dict的增删
在这里插入图片描述
3.4 dict的查改
3.4.1字典的元素是无序的,所以不可以采用分片。
3.4.2字典的元素修改可以直接重新赋值(覆盖)。
3.4.3字典的元素不存在时,若被查找会报错,所以查找前要确认是否存在(in运算符、get())
3.4.4 函数 可以使用dict将其他元素建立为字典。
在这里插入图片描述
dict也可以使用关键字参数创建字典,也可用映射作为dict参数,dict若不带任何参数,将返回一个空字典
在这里插入图片描述

4 集合

集合更接近数学上集合的概念。集合中每个元素都是无序的、不重复的任意对象。
可以通过集合去判断数据的从属关系,也可以通过集合把数据结构中重复的元素减掉。集合可做集合运算,可添加和删除元素。
4.1集合的创建
创建集合时需要用list作为输入集合,可通过add()方法增加元素,remove()方法删除元素,集合中重复的元素会被过滤掉

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值