[Python]基础-基本数据类型

一、文档结构

1 要点

Python基本数据类型

2 具体内容

  • 数据结构的特性
  • 查/改/增/删
  • 排序/遍历/统计
  • 其余内置方法

补充

  1. 常用数据类型
    序列(suquence): Python 最基本的数据结构.
    特点: 根据索引(index,即元素的位置)来获取序列中的元素

  2. 所有序列都可以进行的通用操作

  • 索引(indexing)
  • 分片(slicing)
  • 迭代(iteration)
  • 加(adding)
  • 乘(multiplying)
  1. 常用数据类型
  • 列表(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

你可能感兴趣的:([Python]基础-基本数据类型)