python初学者指南:列表,元祖,字典,集合的使用场景对比及操作异同点分析
发布日期:2021-07-01 02:29:48
浏览次数:2
分类:技术文章
本文共 1421 字,大约阅读时间需要 4 分钟。
在前面的文章中我们一起学习了列表、元祖、字典、集合的定义以及相关常见的操作方法!但是学到这里脑中往往有些凌乱,所以花些时间梳理一下还是不错的!
1 列表、元祖、字典与集合的差异
列表[] | 可变 | 可重复 | 有序 |
元祖(item,) | 不可变 | 可重复 | 无序 |
字典{key:value} | 可变 | 可重复 | 无序 |
集合{} | 可变 | 不可重复 | 无序 |
1.1 可变数据类型与不可变数据类型
-
不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
-
可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。
**总结:**不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变
示例:
元组被称为只读列表,即数据可以被查询,但不能被修改,但是我们可以在元组的元素中存放一个列表,通过更改列表的值来查看元组是属于可变还是不可变。
c1 = ['1','2']c = (1,2,c1)print(c,id(c),type(c))c1[1] = 'djx'print(c,id(c),type(c))result:(1, 2, ['1', '2']) 386030735432(1, 2, ['1', 'djx']) 386030735432
虽然元组数据发生改变,但是内存地址没有发生了改变,但是我们不可以以此来判定元组就是可变数据类型。我们回头仔细想想元组的定义就是不可变的。我们修改了元组中列表的值,但是因为列表是可变数据类型,所以虽然在列表中更改了值,但是列表的地址没有改变,列表在元组中的地址的值没有改变,所以也就意味着元组没有发生变化。我们就可以认为元组是不可变数据类型,因为元组是不可变的。
2 数据序列中的公共操作
2.1 运算符
运算符 | 描述 | 支持的容器类型 |
---|---|---|
+ | 合并 | 字符串、列表、元组 |
* | 复制 | 字符串、列表、元组 |
in | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 元素是否不存在 | 字符串、列表、元组、字典 |
*
示例:
# 1. 字符串print('-' * 10) # ----------# 2. 列表list1 = ['hello']print(list1 * 4) # ['hello', 'hello', 'hello', 'hello']# 3. 元组t1 = ('world',)print(t1 * 4) # ('world', 'world', 'world', 'world')
2.2 公共方法
函数 | 描述 |
---|---|
len() | 计算容器中元素个数 |
del 或 del() | 删除 |
max() | 返回容器中元素最大值 |
min() | 返回容器中元素最小值 |
range(start, end, step) | 生成从start到end的数字,步长为 step,供for循环使用 |
enumerate() | 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 |
2.3 类型转换
函数 | 作用 |
---|---|
tuple() | 将某个序列转换成元组 |
list() | 将某个序列转换成列表 |
set() | 将某个序列转换成集合 |
以上便是本篇文章全部内容,如果看到这里对您有些许帮助,希望可以得到您的三连支持! 相关链接:
转载地址:https://matches999.blog.csdn.net/article/details/117912598 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月15日 06时43分16秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Oracle中自增字段的两种方法的比较(Trigger和Sequence)
2019-05-01
什么是Web 2.0?
2019-05-01
Junit执行及加载顺序分析(原创)
2021-07-04
ORACLE SQL性能优化系列(一)
2021-07-04
ORACLE SQL性能优化系列(二)
2021-07-04
处理正则表达式的java包:regexp
2021-07-04
正则表达式简介(微软)--4.正则表达式语法
2021-07-04
正则表达式简介(微软)--5.建立正则表达式
2021-07-04
正则表达式简介(微软)--6.优先权顺序
2021-07-04
算法-Hash+滑动窗口/按位编码-重复的DNA序列
2021-07-04
多用户与多租户的区别
2021-07-04
算法-滑动窗口-最小覆盖子串
2021-07-04
算法-图/DFS/BFS/并查集-岛屿数量
2021-07-04
算法-并查集
2021-07-04
常使用的Emacs命令
2021-07-04
现代UNIX系统有什么设计上的不足么
2021-07-04
linux 初学者常用命令!
2021-07-04
Spring源代码解析(四):Spring MVC
2021-07-04
Spring源代码解析(五):Spring AOP获取Proxy
2021-07-04
Spring源代码解析(六):Spring声明式事务处理
2021-07-04