6.1_4 Python3.x入门 P4 【基础】序列 - 公共方法总结

本文详细介绍了Python3.x中的序列类型,包括可变序列(列表、集合、字典)和不可变序列(元组、字符串)。重点讲解了序列的增删改操作、内存特性和多线程安全。还给出了各种序列的常见应用场景,如列表的迭代遍历、集合的去重、字典的键值对存储等。此外,探讨了元组作为函数参数和返回值的优势以及字符串格式化的四种方式。

相关链接


一、序列

序号类型数据结构值可重复是否有序定义符号
1可变序列列表(list)[v1,v2,…]
2可变序列集合(set)××{k1,k2,…}
3可变序列字典(dict)key(×) value(√)×{k1:v1,k2:v2,…}
4不可变序列元组(tuple)(v1,v2,…)
5不可变序列字符串(str)--'xxx' / "xxx"

1.1 可变序列 or 不可变序列

可变序列:可以对执行序列进行增、删、改操作,对象地址不发生改变。

可变序列特点:
  1.可变序列发生改变时,是不会改变地址的,而是改变内存中的值,或者是扩展内存空间。
  2.字典是一个可变序列,但是字典的键是不可变的,而值是可变的。因为字典结构的原理是伪随机探测的散列表,它的查找方式是将键通过哈希函数,找到值的内存地址。所以哈希后的值一般是唯一的或是冲突比较小的。如果改变键的值,name哈希后的值就会发生变化,导致找不到原来的值,所以键的值是不可变的。键哈希后指向的是内存中的地址,内存中的数据发生变化不影响字典的查找。

不可变序列:没有增、删、改的操作。由于其内存中不可变特性,在多线程场景下,不需要加锁。

不可变序列的特点
  1.元组中存储的是对象的引用
    a) 如果元组中对象本身不可变对象,即指向的内存地址不可变
    b) 如果元组中的对象是非基本类型,可以修改其中的数据

t = (10, [20, 30], 9)
print(t)  # (10, [20, 30], 9)

# 元组中的元素是引用类型时,可以修改引用类型的数据
t[1].remove(30)  # (10, [20], 9)
print(t)  # (10, [20], 9)

# 不可以修改元素的内存地址
t[1] = [50]
print(t)  # TypeError: 'tuple' object does not support item assignment

  2.如果对不可变序列做出改变,会将该序列存储在新的地址空间中,而原来的序列因为垃圾回收机制,会被回收。


常见用法

1.列表
   a. 列表存储相同类型的数据(虽然可以存储不同类型数据,但一般不这么做)
   b. 通过迭代遍历,再循环体内部,针对列表中的每一项元素,执行相同的操作
2.集合
   a. 包含关系的比较,判断集合关系
   b. 数据去重(值不可重复的特性)
   c. 数据打乱顺序(无序特性)
3.字典
   a. 使用多个键值对,存储描述一个物体的相关信息 — — 描述更复杂的数据信息
   b. 将多个字典放在一个列表中,再进行遍历,再循环体内部针对每一个字典进行相同的处理

card_list=[{"name":"张三","qq":"12345","phone":"110"},
		   {"name":"李四","qq":"54321","phone":"119"}]
for card_info in card_list:
	print(card_info)
	'''测试结果
	{'name': '张三', 'qq': '12345', 'phone': '110'}
	{'name': '李四', 'qq': '54321', 'phone': '119'}
	'''

4.元组
   a. 函数的 参数 和 返回值,一个函数可以接受任意多个参数,或者一次返回多个数据
   b. 字符串格式化,格式化字符串后面的()本质上就是一个元组
   c. tuple(列表)->让列表不可以被修改,以保护数据安全

创建语法
 列表:list = ['hello', 'world', 100]
 集合: set  = {'python', 'hello', 90}
 字典:dict = {'name': '张三', 'age': 100}
 元组:tuple = ('python','hello',90)
 字符串: str = 'python'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值