[Python]基础-基本数据类型
一、文档结构
1 要点
![](https://img.haomeiwen.com/i1708356/35d87bf4c2b15564.png)
2 具体内容
- 数据结构的特性
- 查/改/增/删
- 排序/遍历/统计
- 其余内置方法
补充
-
常用数据类型
序列(suquence): Python 最基本的数据结构.
特点: 根据索引(index,即元素的位置)来获取序列中的元素 -
所有序列都可以进行的通用操作
- 索引(indexing)
- 分片(slicing)
- 迭代(iteration)
- 加(adding)
- 乘(multiplying)
- 常用数据类型
- 列表(list): 属于序列
- 元组(tuple): 属于序列
- 字符串(string): 属于序列
- 字典( dict): 属于映射类型,键值对构成
- 集合(set): 包含的所有元素不可重复
二、基本类型
1 整数,浮点数,复数(a+bj)
- 基本操作
算术操作
+ - * / //
/结果取浮点数 //结果取整数部分
% **
位操作
& | ^ << >>
^表示异或
- 其余内置方法
二进制 bin()
八进制 oct()
十六进制 hex()
取整 round()结合模块math
.ceil()
.floor()
.radians()
2 布尔值 True False
-
特性:Python数据隐含真假值
数据隐含真假值
- 特性:短路运算
在计算a and b时,如果a是True,则计算结果取决于b,返回b;如果a是False,则直接返回a
在计算a or b时,如果a是True,则直接返回a;否则返回b - 其余内置方法
and or not
bool()
检查变量的真假值
3 None
None不能理解为0,因为0是有意义的,而None是一个特殊的空值
4 列表list []
- 特性
有序的,可变的,支持嵌套
列表与字典相反,查找和插入速度随着元素的增加而变慢,但占用的内存较小
- 查/改/增/删
查
list[start: end: step]
切片
in; not in
查找,返回布尔值
index()
返回索引,可指定索引范围,查不到也不会报错改/增
修改:直接赋值
list1+list2
合并列表
list1.extend(list2)
合并列表
list.append()
添加元素
list.insert(index, )
指定位置添加元素删
del()
remove()
删除第一个匹配的值,没有则抛出异常
pop()
返回最后一个元素,并删除
clear()
- 排序/遍历/统计
排序
sort(key=)
reverse()
遍历
for ... in enumerate()
枚举
for ... in zip()
多个列表合并
range()
列表推导式统计
len()
count()
某个元素的个数
max()
min()
- 其余内置方法
copy
浅复制
deepcopy
深复制
L = ['Windrivder', 21, {'name': 'xiaoming'}]; name, age, other = L
赋值小技巧
5 集合set {}
- 特性
创建用set(),而不是{}
没有顺序:不能用切片和索引来操作
基本用法包括成员检测,利用集合的特性消除重复元素或做并、交、差等数学操作
注:set是可变数据类型,但是set里面的元素一定是不可变数据类型创建
set()
frozenset()
不可变的集合
- 查/改/增/删
查
in; not in
改/增
set.add()
set.update()
删
set.remove()
discard()
pop()
随机删除
- 排序/遍历/统计
遍历
集合推导式
统计
len()
- 其余内置方法
集合操作(维恩图)
set1 & set2
交集
set1 | set2
并集
set1 - set2
补集
a^b
并集减去交集
a.update(b)
求差集并赋值给a集合
difference()
difference_update()
intersection()
intersection_update()
union()
symmetric_difference()
两个集合中不重复的元素集合
symmetric_difference_update()
移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中判断
isdisjoint()
判断两个集合是否包含相同的元素
issubset()
判断集合的所有元素是否都包含在指定集合中
issuperset()
判断指定集合的所有元素是否都包含在原始的集合中
6 元组tuple ()
- 特性
有序
不可修改:因为tuple不可变,所以代码更安全(代替list)(内存可以明确知道需要分配多少空间给元组)
元组的元素不允许删除,但是我们可以删除整个元组创建
tuple=(5,)
只有1个元素
tuple=(5)
表示int
- 查/改/增/删
查
切片
改/增
更改:先转化为列表
删
del()
- 排序/遍历/统计
统计
len()
max()
min()
7 字典dict {}
- 特性
无序:无法用数值索引
可变:但组成字典的键必须是不可变的数据类型(因为它的 value 的位置是根据 key 计算出来的)
占用大量的内存而获得极快的查找和插入速度创建
dict()
创建时如果同一个键被赋值两次,后一个值会被记住
- 查/改/增/删
查(通过键)
dict['key']
通过键来得到值
dict.get('key')
找不到对象返回None判断成员(通过键)
in; not in
查找,返回布尔值
dict.has_keys('key')
setdefault(k, v)
如果键在字典中,则返回这个键的值,如果不在字典中,则向字典中插入这个键,并返回value,默认value位None改/增
添加/修改:类似列表,直接赋值
fromkeys()
所有keys共用相同的value
dict.update(dict2)
将新的字典添加到原来的字典,若原来的字典包含了这个键则覆盖原来的值删
del()
dict.pop('key')
返回最后一个元素,并删除
dict.popitem()
弹出最后一个键值对返回到元组中,没有会报错
dict.clear()
删除所有
- 排序/遍历/统计
遍历(类似列表)
for ... in enumerate()
枚举
for ... in zip()
多个列表合并
range()
统计
max(dict)
返回key中的最大项(针对int型的key)
max(dict.values())
len()
str()
输出字典中可以打印的字符串标识
- 其余内置方法
copy
浅复制
深复制:直接赋值
dict.items()
返回键值对
dict.keys()
dict.values()
三、补充
0 pd.__version__
版本号,返回字符串
1 字符串单独梳理
2 Bytes类型
一个字符占8位bit,所有的字符存到存储单元里都是bytes类型
3 自定义数据类型
Python 允许通过继承去自定义数据类型,很多第三方库或框架都有类似的应用
4 list是链表实现,set是hash表实现,不同的实现决定了是否排序
set是集合,集合在数学概念里面就是无序的
5 size()
和shape()
是numpy模块中才有的函数
6 目标:list中的每个元素*10
list 10 ——只是列表的元素重复10次,类似字符串10
正确的做法:转化为序列数据pd.Series(tick_locs)*10
References
https://zhuanlan.zhihu.com/p/26079855
https://blog.csdn.net/Jarrodche/article/details/102537999
https://blog.csdn.net/shaoguodi/article/details/80617256
https://www.jianshu.com/p/0d877edeebd3