Python学习笔记丨数据类型基础与易错点总结,列表、字典、集合、数值、字符串、元组

简介: Python学习笔记丨数据类型基础与易错点总结,列表、字典、集合、数值、字符串、元组

Python数据类型

本篇笔记的主要内容是:Python数据类型,包括列表、字典、集合、数值、字符串、元组。

主要有6种,其中3种是可变类型(列表、字典、集合),另外3种为非可变类型(数值、字符串、元组)

tips:列表和元组很相似,但有两个不同点。第一点是元组使用小括号,而列表使用方括号;第二点是元组声明和赋值后,不能像列表一样添加、删除和修改元素,也就是说元组在程序运行过程中不能被修改。

  • 列表:各项之间用逗号分隔,元素类型可以不同,使用[]进行表示,索引从0开始。
  • list.append():添加元素
  • list.count():检查某元素出现的次数
  • * :重复列表
  • in:检查元素是否存在于列表
  • list(a):将元组a转换成列表
list = [1, 2, 3, 4, 5, 6, 7 ]
print(list[2])
3
list.append('a')
print(list)
[1, 2, 3, 4, 5, 6, 7, 'a']

易错点提示:

  1. 列表增加元素:是.不是空格,append后的括号⾥只能接受⼀个参数
  2. 不能赋值:a=list.append(3),此时a为None
  3. 列表推导式,由一对方括号所包含的以下内容:一个表达式,后面跟一个 for 子句,然后是零个或多个 forif 子句。其结果将是一个新列表,由对表达式依据后面的 forif 子句的内容进行求值计算而得出
  • 元组:和列表类似,使用()进行表示,不可修改,但是可以进行连接。
  • tuple(a):将列表a转换成元组
  • + :连接两个元组
tup1 = "a", "b", "c", "d"
tup2 = (1, 2, 3, 4, 5 )
len(tup1)
Out[6]: 4
2in tup2
Out[7]: True
print(tup1 + tup2)
('a', 'b', 'c', 'd', 1, 2, 3, 4, 5)

易错点提示:

  1. 元组时只读列表,可查询不可修改,常用于存储不想修改的数据
  2. 只含有一个元素,在元素后面加上逗号,否则会被识别为其他数据类型
  3. 切片操作:[start : end : sep] ,即为[开始索引:终点索引:步长],注意右边取不到
  • 字典:可变容器,由成对的key键和value值组成,和电话薄类似,查询速度很快。
  • 键与值使用分隔
  • 子项之间使用分隔
  • 同一字典中,不允许键名称重复
  • 同一个键被多次赋值,新值覆盖旧值
  • 键不可变,不能使用列表充当键
listdemo = ['jewin','bio', 'note',"yes"]
newdict = {key:len(key) for key in listdemo}
# 创建新字典,值为键的长度
print(newdict)
{'jewin': 5, 'bio': 3, 'note': 4, 'yes': 3}

易错点提示:

  1. 用 get 获取字典中的值,可以使用 get 方法来代替 if ... else,通常在 key 不存在的情况下会报 KeyError 错误,而这种get方法可以避免。
  2. setdefault方法为字典设置缺省值,如果 key 存在于字典中,那么直接返回对应的值,等效于 get 方法。如果 key 不存在字典中,则会用 setdefault 中的第二个参数作为该 key 的值,再返回该值。
  3. 使用 iteritems 迭代字典中的元素,items 方法返回的是(key ,value)组成的列表对象,这种方式的弊端是迭代超大字典时内存会瞬间扩大,更好的方式是使用 iteritems,具有惰性加载的特性
  4. 字典没有偏移量,所以在提取元素时,中括号中应该写键的名称,即字典名[字典的键]。提取出来的是key对应的value,⽽不会显示键的数据
  5. 新增元素格式:字典名[键] = 值。每次只能新增⼀个键值对。删除元素格式:del 字典名[键]
  • 字符串:使用引号 ( '" ) 来创建,使用方括号来截取字符串
  • 前索引从0开始
  • 后索引从最后一位-1开始
  • 截取字符串遵循左闭右开原则
  • in:成员运算符
转义字符 描述
\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页

f-string:格式化字符串(Python3.6 之后版本添加)

a = "sadasdfa12342143fdadfa"
print(f'hello {a}')
hello sadasdfa12342143fdadfa
  • 集合:无序的不重复元素序列,使用大括号 { } 或者 set() 函数创建。
  • 自动去除重复
  • 可以进行交并补运算
  • set.add:添加元素
  • set.remove:移除元素
  • set.pop:随机取出一个元素
a = set('abraewrcadaghdbra')
b = set('alfsacazafsdfm')
print(a-b) #差集
print(a&b) #交集
print(a|b) #并集
print(a^b) #没有同时存在的元素
{'e', 'r', 'w', 'b', 'h', 'g'}
{'a', 'd', 'c'}
{'e', 'l', 'm', 'r', 'w', 'f', 'z', 'a', 'b', 's', 'c', 'd', 'h', 'g'}
{'e', 'l', 'm', 'r', 'w', 'f', 'z', 'b', 's', 'h', 'g'}
  • 数字:不允许改变,改变后重新分配内存空间
  • 整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点
  • 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示
  • 复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示
2-1
Out[23]: 1
2-1.0
Out[24]: 1.0
2.0-1
Out[25]: 1.0
# 浮点运算可能结果会有误差
2-1.9
Out[26]: 0.10000000000000009
0.3-0.1
Out[27]: 0.19999999999999998

易错点提示:

  1. 穿上单引号、双引号、三引号黄袍的内容就是字符串,无论引号里面内容是中文、英文、法文、数字、符号、甚至是火星文
  2. 字符串,就是由一个个字符连接起来的组合,你平时所见的字母、数字、汉字、符号都是字符。字符串可以用来表示词、语句、甚至是数学公式。
  3. 整数, 英文为 integer, 简称 int。Python 江湖的整数和我们现实数学中定义的一样:整数是正整数、零和负整数的统称。说白了,就是没有小数点的数字。
  4. 浮点数,英文称为 float。浮点数虽说比整数多一个小数点,但是它存在一个 bug。因为浮点数的特点,导致它在计算机内运算时,结果不是那么精确,会有四舍五入的差,Python 在计算浮点数时,会有相应的转换机制,所以最终的小数精度会缺失。
  5. 只有字符串与字符串才能拼接
  6. 数据类型的查询 type()函数
  7. 数据转换的方法有3个: str() ,int(),float()
  8. 浮点形式的字符串也不能使用 int()强制转换,但是浮点数是可以使用 int()函数来转换
  9. float()函数可以将整数和字符串转换成浮点数类型,但前提是,这个字符串中的内容一定是数字形式

© 素材来源于网络,侵权请联系后台删除

往期推荐:

文献丨群体转录组分析锁定关键转录因子

文献丨转录组RNA seq——青年阶段!

文献丨高通量表型组图像识别与GWAS

笔记丨ggplot2热图入门学习笔记

笔记丨PCA分析基本知识和数学原理

图书丨R语言、Python、Linux

超算丨数据分析时电脑配置不够用?试试

软件 | 如何进行基因家族分析?TBtools

服务器丨家用联想台式机重装Linux系统

转录组丨一套完整的操作流程案例

相关文章
|
1月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
181 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
1月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
129 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
1月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
135 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
WK
|
22天前
|
Python
python元组与列表的转换
在 Python 中,元组(tuple)和列表(list)是两种常用的数据结构,它们之间可以相互转换
WK
28 9
WK
|
22天前
|
Python
Python创建元组
必须在这个元素后面加上一个逗号,否则 Python 会把它当作一个普通的带圆括号的表达式而不是元组
WK
15 4
WK
|
22天前
|
数据处理 Python
Python空元组作用有哪些
空元组在Python中可能不像包含元素的元组那样直接用于数据处理,但它们仍然可以在多种情境下发挥重要作用
WK
19 2
|
1月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
61 1
|
1月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
77 1
|
1月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
30 0
|
1月前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景