python各数据类型特点
python3种数据类型:
1.数值:1,2,3
2.序列:字符串,列表,元祖
3.散列:字典,集合。⭐️内部元素是无序的。
性能排序:
从消耗时间上比较:集合<字典<元祖<列表
从占用内存上比较:字典>集合>列表>元祖
一。元组与列表
list与tuple(列表与元组)性能:
pip install ipython(ipython可以分析函数的执行时间)
ipython
对比得出,在内存中创建元组比创建列表快了很多。 所以,数据会增减变化的用列表,不会变化的尽量用元组。
命名元祖:
二。字典和集合{ }
字典和集合的原理及应用:
dict与set实现原理是一样的,都是将实际的值放入list中,唯一不同在于hash函数操作的对象;对于dict,hash函数操作的是其key;对于set,hash函数直接操作其元素,假设操作内容为x,其作为因变量放入hash函数,通过运算后取list的余数,转化为一个list的下标,此下标位置对于set而言用来放其本身,而对于dict而言,则是创建了两个list,一个list存放该下标key,另一个list存放该下标对应的value。其中,我们把实现set的方式叫做HashSet.实现dict的方式叫做Hash Map/Table(map就是指通过key来寻找value的过程)。
集合:se = set()或者se = {}.集合可自动去重
字典:dic = {'name':'chuntian'}
三。推导式:可推导出列表和字典
1.列表推导式:[ ]
list1 = [i**2 for i in range(10)]
print(list1)输出:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2.字典推导式:{ }
dict1 = {i: i+1 for i in range(10)}
print(dict1)
输出:
{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10}a = ['a', 'b', 'c', 'd']
dict1 = {}
for i, j in enumerate(a):dict1[i] = j
print(dict1)
输出:
{0: 'a', 1: 'b', 2: 'c', 3: 'd'}list1 = ["cook_str='sdgdssgk gjkjdg'", "pstm='但是风蛋糕跟'", "adg='sfs gg"]
dict1 = {i.split('=')[0]: i.split('=')[1] for i in list1}
print(dict1)
输出:
{'cook_str': "'sdgdssgk gjkjdg'", 'pstm': "'但是风蛋糕跟'", 'adg': "'sfs gg"}
四。迭代器和生成器
迭代器:只要能通过next()从里面取值的,都叫迭代器(生成器属于迭代器的一种);只要是能够通过for循环进行遍历的,都是可迭代对象。iter()函数可以将一个可迭代对象转换成一个迭代器。
# 可以使用iter()方法将可迭代对象转化为一个迭代器
list1 = [1, 2, 3, 4]
print(next(list1)) # TypeError: 'list' object is not an iterator输出:
TypeError: 'list' object is not an iterator
# 可以使用iter()方法将可迭代对象转化为一个迭代器
list1 = [1, 2, 3, 4]
list_iter = iter(list1)
print(next(list_iter))
print(next(list_iter))输出:
1
2
生成器:( )节约内存,提升性能。
yield关键字只能用在函数中。
使用next()取值
# ()生成器表达式
iter1 = (i for i in range(5))
print(next(iter1))
print(next(iter1))
print(next(iter1))
print(next(iter1))
print(next(iter1))
print(next(iter1))
输出:
0
1
2
3
4
Traceback (most recent call last):File "/Users/jeanettian/PycharmProjects/demo/dataType/生成器.py", line 8, in <module>print(next(iter1))
StopIteration
函数内中使用yield关键字实现生成器
def func():yield 100print("hello,world")yield 200yield 300res = func()
print(next(res)) # 100
print(next(res)) # hello,world 200
print(next(res)) # 300
print(next(res)) # 300
send()方法可往生成器内添加数据,next()方法可以从生成器中取出数据。
ge.send()示例:
def func():for i in range(1, 5):res = yield iprint('res的值为:', res)ge = func() # ge是生成器对象
print(next(ge)) # 从生成器取值
print(ge.send(100)) # 往生成器中添加数据,会在yield暂停后,将值赋值给res接收
print(next(ge))输出:
1
res的值为: 100
2
res的值为: None
3
python各数据类型特点相关推荐
- Python的零基础超详细讲解(第四天)-Python的数据类型
Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...
- python的数据类型和变量
python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...
- python核心数据类型_Python核心数据类型-列表
Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...
- python判断数据类型type_Python 判断数据类型有type和isinstance
Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 执行结果如下: 用isinstance判断 ...
- Python基础数据类型之set集合
Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...
- Python基础数据类型之字符串(二)
Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...
- Python基础数据类型之字符串(一)
Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...
- 好好学python·基本数据类型
好好学Python的第一天 基本用法 注释 输出 变量 命名规范 变量的定义方式 python的数据类型 数据类型分类 字符串类型 数字类型 List列表类型 tuple 元组类型的定义 Dict字典 ...
- python元组类型_什么是python元组数据类型
什么是python元组数据类型 发布时间:2020-08-25 11:46:29 来源:亿速云 阅读:68 这篇文章运用简单易懂的例子给大家介绍什么是python元组数据类型,代码非常详细,感兴趣的小 ...
- python核心数据类型_Python核心数据类型—元组
Python核心数据类型-元组 Python元组与列表类似,但是元组属于不可变类型 创建元组 a = () #创建空元组 a = (1, 2, 3) #创建一个元组 a = [1, 2, 3] b = ...
最新文章
- overlapped I/O的学习笔记
- python基础教程:将一个列表切分成多个小列表
- sun game server (sgs)初探
- 13.5.虚拟化工具--jhat详解、13.6.虚拟化工具--jstack详解
- Camel中的几个重要概念之Routes, RouteBuilders 和 Java DSL
- SwiftUI3优秀文章List 去掉左右间距问题
- 十二省联考题解 - JLOI2019 题解
- centos安装mysql5.6系统崩溃_CentOS7安装MySQL5.6冲突总结
- PostgreSQL 给数据库添加用户
- 创业团队吸贤大法,如何设计完美的员工股权激励计划?
- 运动社交或将成为“反科技”先锋
- 易语言之编译后图标模糊的处理方案
- 局域网打印机怎么连接_mac连接局域网打印机
- Ubuntu 旅行日记 Day 1
- 斐尔可圣手二代蓝牙设置问题
- 德州达拉斯大学计算机录取要求,德克萨斯大学达拉斯分校申请条件(德克萨斯大...
- Win11系统电脑浏览器打开页面时显示无法访问此页面
- 麒麟操作系统学习(安装)
- win10安装kafka kafka_2.13-2.8.1
- WRSC无人帆船航行基本原理