美文网首页Python
[Python]基础-基本数据类型

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

作者: DDuncan | 来源:发表于2020-01-22 00:59 被阅读0次

    一、文档结构

    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]基础-基本数据类型

        本文链接:https://www.haomeiwen.com/subject/svhyzctx.html