Python基础篇 | 数据类型总结和相关函数 以及迭代器相关

数据类型

Python的数据类型大致可以分为两种:

  • Python自带内置数据类型
  • 第三方扩展包中的数据类型

内置数据类型

  • 可变数据类型:list(列表)、dic(字典)、set(集合)
  • 不可变数据类型:int、float、complex(复数)、bool(布尔)、tuple(元组)、str(字符串)、forzenset(不变集合)
  • 序列类型:元组、列表、字符串
    Python数据类型小结

查看数据类型:type()
type()
判断数据类型:isinstance(参数,类型)
isinstance()

一些特殊的数据类型

  • None类型
    必须用print()函数才能显示出来
  • 进制
    int(’ xx ',base = x )意为将X进制下的数xx表示为10进制
    单引号和双引号效果相同
    进制
    更多进制转换可参考:进制转换
  • 科学计数法:
10e10     #10的10次方

序列

序列(sequence)是有序的元素集合,既列表、元组和字符串等元素之间有顺序关系的数据类型的统称
(字典不属于序列)
特点:

  • 支持索引

  • 支持切片
    [start : stop : step]
    含头不含尾,且三个参数都可以省略

  • 支持迭代

  • 支持拆包赋值

  • 支持重复运算符 *

  • 设有专用函数
    常用函数

  • 计算长度len()

  • 排序 sorted()
    默认从小到大排,加上reverse = Ture就是从大到小,不会改变序列本身
    1

  • 逆序reversed()
    reversed()函数返回的是迭代器,需要转换后查看

  • 跟踪下标enumerate()
    函数返回的是迭代器,需要转换后查看

  • 同步计算zip()
    函数返回的是迭代器,需要转换后查看

列表 [ ]

列表(list),标志性符号为方括号[ ] 一种可变的有序容器,每个元素都有自己的下标

列表的下标有两种表示方式—— 正数法(第一个元素为0,最后一个为n-1) 和 负数法(第一个元素为-n,最后一个元素为-1)

反向遍历的方法:

  1. 负数下标法
    [ : : -1]

fushu

  • 内置函数reversed()
    reversed()返回的是迭代器,不会改变列表本身
    8

  • 列表方法reverse()
    reverse()改变了列表本身
    9
    列表推导式:[x for x in ... (if ...)]

  • for之前:将要重复计算的公式

  • for 和 in 之间:从迭代器中提取的循环变量

  • in 之后:可迭代的对象或迭代器

常用运算

  • 排序
    内置函数:sorted()
    列表方法sort() 改变了原列表

  • 合并.append()
    平等追加,既将()内的元素直接放到列表中
    10
    使用运算符+

  • 追加.extend()
    以成员身份追加,既加入的是单个的元素
    11

  • 删除
    根据下标:.pop()
    根据内容:.remove()
    使用语句del
    删除重复元素:
    使用列表推导式:[x for x in list if 条件]
    使用函数:filter()
    使用函数重复过滤后再删除:set()
    13

  • 插入.insert()
    insert(下标,插入的数值)

元组 ( )

元组(tuple),标志性符号为圆括号( ) 一种 不可变 的有序容器,每个元素有位置上的先后顺序

元组在Python中非常常见,具体表现为 凡是用逗号隔开的都是元组,输出时会自动的补充上圆括号,这也意味着元组定义时可以不加括号,只要有逗号就行

常用运算

  • 拆包赋值

  • 频次统计:.count()
    在这里插入图片描述

  • 变量值对换:x , y = y , x
    这一步操作实际上是通过元组来完成的

  • 支持所有序列操作

字符串 " "

字符串,用单 / 双引号 (三引号原格式输出也可以),是 不可变 对象

转义字符
Python中有转义字符,当字符串中本身就有 \ 时,有两种解决方法:

  • 用“ \ ”来表示和转义“ \ ”
  • 在字符串前加字母r,代表原始字符串
  • 注意,如果是用Jupyter notebook的直接输出x而不是通过print()函数的话,不会对转义字符做转义
常用操作
  • 合并
    使用函数.join()
    使用运算符+
    1

  • 计算字符的Unicode编码
    内置函数ord()
    解码chr()
    1

  • 去掉左右空白符(包括空格,换行符).strip()

  • 大小写转换
    大写转小写:lower()
    小写转大写:upper()

  • 支持所有序列操作

集合 { }

集合(set),标志性符号为花括号{ } ,是一种可变的无序容器
特点:

  • 确定性
    属于不属于关系明确
  • 无序性
    不支持下标
  • 互异性
    常用来去重
  • 支持集合运算
    交并差等|#合集 & #交集 < #子集 - #差集 ^ #对称差分
    判断是否为子集:.issubset()
    判断是否为父集:.issuperset()
  • 属于可变对象
    添加.add()
    删除remove()

字典 { }

字典,是一种可变的无序容器,其中的每个值(value)都有自己的键(key)是一种映射结构,标志性符号为花括号{ }
定义时的注意事项:

  • 要用{ }括起

  • key和 value之间要用冒号: 分开

  • 不同key/value 之间要用逗号, 分开
    需要知道:

  • 如果一个key对应了两个value,输出时后一个覆盖前者,既显示后一个value值

  • 当key为字符串时,需要用引号括起来

  • key不能为不可哈希对象,即可变的数据结构 (字典dict,列表list,集合set)
    关于哈希可参考

  • 实例
    有如下字典,按照要求实现每一个功能。
    dict = {"k1":"v1","k2":"v2","k3":"v3"}
    (1)请循环遍历出所有的key和value。
    (2)请在字典中增加一个键值对,“k4”:“v4”,输出添加后的字典。
    (3)修改k1的值为v5,输出修改后的字典

dict = {"k1":"v1","k2":"v2","k3":"v3"}
for x in dict:
    print(x,dict[x])
dict["k4"] = "v4"
print("添加后的字典:",dict)
dict["k1"] = "v5"
print("修改后的字典:",dict)

迭代器和生成器

迭代器(iterator):可以被内置函数next()调用,并不断返回下一个值的对象
生成器(generator):生成一个新的迭代器的函数

生成器特点
  1. 定义使用yeild而不是return
  2. 遵循惰性计算模式,不会立即返回计算结果,只有调用其中的元素时才运行
辨析:可迭代对象与迭代器

可迭代对象(iterator object):可以直接作用于循环语句的对象

  1. 可迭代对象不一定是迭代器
    判断方法:用内置函数 isinstance() 和 collections模块
from collections import iterable
isinstance(对象名,iterator)
  1. 内置函数iter()可以将 可迭代对象 转换为 迭代器
  2. 能够接收 可迭代对象 的函数都可以接收 迭代器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值