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

本文详细介绍了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. 能够接收 可迭代对象 的函数都可以接收 迭代器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值