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各数据类型特点相关推荐

  1. Python的零基础超详细讲解(第四天)-Python的数据类型

    Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...

  2. python的数据类型和变量

    python的数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种 ...

  3. python核心数据类型_Python核心数据类型-列表

    Python核心数据类型-列表 关于列表的重要属性 列表是任意对象的有序集合,列表中可以包含任何种类的对象,数字 字符串 或者是其他列表 列表可以通过偏移来读取其中的元素,也可以通过分片读取列表中的某 ...

  4. python判断数据类型type_Python 判断数据类型有type和isinstance

    Python 判断数据类型有type和isinstance 基本区别在于: type():不会认为子类是父类 isinstance():会认为子类是父类类型 执行结果如下: 用isinstance判断 ...

  5. Python基础数据类型之set集合

    Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...

  6. Python基础数据类型之字符串(二)

    Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...

  7. Python基础数据类型之字符串(一)

    Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...

  8. 好好学python·基本数据类型

    好好学Python的第一天 基本用法 注释 输出 变量 命名规范 变量的定义方式 python的数据类型 数据类型分类 字符串类型 数字类型 List列表类型 tuple 元组类型的定义 Dict字典 ...

  9. python元组类型_什么是python元组数据类型

    什么是python元组数据类型 发布时间:2020-08-25 11:46:29 来源:亿速云 阅读:68 这篇文章运用简单易懂的例子给大家介绍什么是python元组数据类型,代码非常详细,感兴趣的小 ...

  10. python核心数据类型_Python核心数据类型—元组

    Python核心数据类型-元组 Python元组与列表类似,但是元组属于不可变类型 创建元组 a = () #创建空元组 a = (1, 2, 3) #创建一个元组 a = [1, 2, 3] b = ...

最新文章

  1. overlapped I/O的学习笔记
  2. python基础教程:将一个列表切分成多个小列表
  3. sun game server (sgs)初探
  4. 13.5.虚拟化工具--jhat详解、13.6.虚拟化工具--jstack详解
  5. Camel中的几个重要概念之Routes, RouteBuilders 和 Java DSL
  6. SwiftUI3优秀文章List 去掉左右间距问题
  7. 十二省联考题解 - JLOI2019 题解
  8. centos安装mysql5.6系统崩溃_CentOS7安装MySQL5.6冲突总结
  9. PostgreSQL 给数据库添加用户
  10. 创业团队吸贤大法,如何设计完美的员工股权激励计划?
  11. 运动社交或将成为“反科技”先锋
  12. 易语言之编译后图标模糊的处理方案
  13. 局域网打印机怎么连接_mac连接局域网打印机
  14. Ubuntu 旅行日记 Day 1
  15. 斐尔可圣手二代蓝牙设置问题
  16. 德州达拉斯大学计算机录取要求,德克萨斯大学达拉斯分校申请条件(德克萨斯大...
  17. Win11系统电脑浏览器打开页面时显示无法访问此页面
  18. 麒麟操作系统学习(安装)
  19. win10安装kafka kafka_2.13-2.8.1
  20. WRSC无人帆船航行基本原理

热门文章

  1. java程序 键盘事件_java编写程序实现键盘钢琴,运用键盘事件、鼠标事件
  2. 如何批量轻松实现地图坐标系转换
  3. SQL聚合函数功能和用法解析
  4. java ocr数字识别_Java OCR tesseract 图像智能文字字符识别技术实例代码
  5. Win7 DCOM 配置中我的电脑出现红色箭头并且无属性显示的解决方法
  6. woe分析_WOE(证据权重)为何这样计算?
  7. mysql工资由低到高语句_mysql面试题
  8. sysmac studio
  9. 163邮箱之如何设置邮件代发?
  10. 计算机 用户id 怎么找回,电脑忘记用户名怎么办