数据容器

列表

  1. 常见方法
  • list.append(元素):向列表中追加一个元素
  • list.extand(容器):将数据容器的内容依次取出,追加到列表的尾部
  • list.insert(下标,元素):在指定下标处,插入指定的元素
  • del列表[下标]:删除列表指定下标元素
  • 列表.pop(下标):删除列表指定下标元素
  • 列表.remove(元素):从前向后,删除此元素第一个匹配项
  • 列表.clear():清空列表
  • 列表.count(元素):统计此元素在列表中出现的次数
  • index(元素):查找指定元素在列表的下标列表.找不到报错ValueError
  • len(列表):统计容器内有多少元素
  1. 特点
  • 可以容纳多个元素(上限为2**63-1、9223372036854775807个)
  • 可以容纳不同类型的元素(混装)
  • 数据是有序存储的(有下标序号)
  • 允许重复数据存在
  • 可以修改(增加或删除元素等)

元组

  1. 操作方法
  • index():查找某个数据,如果数据存在返回对应的下标,否则报错
  • count():统计某个数据在当前元组出现的次数
  • len(元组):统计元组内的元素个数
  1. 特点
  • 不可修改内容(可以修改内部st的内部元素)
  • 有序、任意数量元素、允许重复元素,不可修改
  • 支持for循环

字符串

  1. 常见方法
  • 字符串[下标]:根据下标索引取出特定位置字符
  • 字符串.index(字符串):查找给定字符的第一个匹配项的下标
  • 字符串.replace(字符串1,字符串2):将字符串内的全部字符串1,替换为字符串符串2,不会修改原字符串,而是得到一个新的
  • 字符串.split(字符串):按照给定字符串,对字符串进行分隔字符串.不会修改原字符串,而是得到一个新的列表
  • 字符串.strip(字符串)移除首尾的空格和换行符或指定字符串
  • 字符串.count(字符串):统计字符串内某字符串的出现次数
  • len(字符串):统计字符串的字符个数
  1. 特点
  • 只可以存储字符串
  • 长度任意(取决于内存大小)
  • 支持下标索引
  • 允许重复字符串存在
  • 不可以修改(增加或者删除元素)
  • 支持for循环

序列

  1. 定义:内容连续、有序、支持下标索引的一类数据容器
  2. 分类:列表、元组、字符串
  3. 序列如何切片:序列[起始:结束:步长]

集合

  1. 常用方法
  • 集合.add(元素):集合内添加一个元素
  • 集合.remove(元素):移除集合内指定的元素
  • 集合.pop():从集合中随机取出一个元素
  • 集合.clear():将集合清空
  • 集合1.difference(集合2)得到一个新集合,内含2个集合的差集原有的2个集合内容不变在集合1中,删除集合2中存在的元素
  • 集合1.difference_update(集合2)集合1被修改,集合2不变
  • 集合1.union(集合2)得到1个新集合,内含2个集合的全部元素原有的2个集合内容不变
  • len(集合)免add得到一个整数,记录了集合的元素数量
  1. 特点
  • 可以容纳多个数据
  • 可以容纳不同类型的数据(混装)
  • 数据是无序存储的(不支持下标索引)
  • 不允许重复数据存在
  • 可以修改(增加或删除元素等)
  • 支持for循环

字典

  1. 常用方法
  • 字典[Key]:获取指定Key对应的Value值
  • 字典[Key]=Value:添加或更新键值对
  • 字典.pop(Key):取出Key对应的Value并在字典内删除此Key的键值对
  • 字典.clear():清空字典
  • 字典.keys():获取字典的全部Key,可用于for循环遍历字典
  • len(字典):计算字典内的元素数量
  1. 特点
  • 可以容纳多个数据
  • 可以容纳不同类型的数据
  • 每一份数据是KeyValue键值对
  • 可以通过Key获取到Value,Key不可重复(重复会覆盖)
  • 不支持下标索引
  • 可以修改(增加或删除更新元素等)
  • 支持for循环,不支持while循环

数据容器的总结

  1. 应用场景
  • 列表:一批数据,可修改、可重复的存储场景
  • 元组:一批数据,不可修改、可重复的存储场景
  • 字符串:一串字符串的存储场景
  • 集合:一批数据,去重存储场景
  • 字典:一批数据,可用Key检索Value的存储场景
  1. 通用功能
  • 通用for循环:遍历容器(字典是遍历key)
  • max:容器内最大元素
  • min():容器内最小元素
  • len():容器元素个数
  • list():转换为列表
  • tuple():转换为元组
  • str():转换为字符串
  • set():转换为集合
  • sorted(序列,[reverse=True]):排序,reverse:=True表示降序得到一个排好序的列表

函数

参数传递

  1. 掌握位置参数
  • 根据参数位置来传递参数
  1. 掌握关键字参数
  • 通过“键=值”形式传递参数,可以不限参数顺序
  • 可以和位置参数混用,位置参数需在前
  1. 掌握缺省参数
  • 不传递参数值时会使用默认的参数值
  • 默认值的参数必须定义在最后
  1. 掌握不定长参数
  • 位置不定长传递以*号标记一个形式参数,以元组的形式接受参数,形式参数一般命名为args
  • 关键字不定长传递以**号标记一个形式参数,以字典的形式接受参数,形式参数一般命名为kwargs

lambda匿名函数

  1. 匿名函数使用lambda关键字进行定义
  2. 定义语法:lambda传入参数:函数体(一行代码)
  3. 注意事项:
  • 匿名函数用于临时构建一个函数只用一次的场景
  • 匿名函数的定义中,函数体只能写一行代码,如果函数体要写多行代码,不可用lambda匿名函数,应使用def定义带名函数

文件

  1. 读入操作汇总
  • 文件对象open(file,mode,encoding):打开文件获得文件对象
  • 文件对象.read(num):读取指定长度字节不指定num读取文件全部
  • 文件对象.readline():读取一行
  • 文件对象.readlines():读取全部行,得到列表
  • for line in 文件对象:fo循环文件行,一次循环得到一行数据
  • 文件对象.close():关闭文件对象
  • with open()as f:通过with openi语法打开文件,可以自动关闭
  1. 写入操作汇总
  • 写入文件使用open函数的” W模式进行写入
  • 写入的方法有:
    • wirte(),写入内容
    • flush(),刷新内容到硬盘中
  • 注意事项:
    • W模式,文件不存在,会创建新文件
    • W模式,文件存在,会清空原有内容
    • close()方法,带有flush()方法的功能

异常

  1. 为什么要捕获异常
    在可能发生异常的地方,进行捕获。当异常出现的时候,提供解决方式,而不是任由其导致程序无法运行。
  2. 捕获异常的语法
    1
    2
    3
    4
    5
    6
    7
    8
    try:
    可能要发生异常的语句
    except[异常 as 别名:]
    出现异常的准备手段
    [else]:
    未出现异常时应做的事情
    [finally]:
    不管出不出现异常都会做的事情
  3. 如何捕获所有异常
  • 异常的种类多种多样,如果想要不管什么类型的异常都能捕获到,那么使用:
    • except:
    • except Exception:

模块

  1. 如何自定义模块并导入
    在Python代码文件中正常写代码即可,通过import、from关键字和导入Python内置模块一样导入即可使用。
  2. main变量的功能是
    if_main_=”main“表示,只有当程序是直接执行的才会进入 if内部,如果是被导入的,则if无法进入
  3. 注意事项
    • 不同模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的中
    • __all_变量可以控制import *的时候哪些功能可以被导入

json数据格式转换

1
2
3
4
5
import json  #引入json包
data = [] #可以是字典或者是列表
json.dumps(data,ensure_ascii=False) #转换成字符串类型
json.loads(data) #将json数据类型还原成列表类型文件

pyecharts模块折线图可视化

  • 想要做出数据可视化效果图,可以借助pyecharts模块来完成
  • pyecharts 文档
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from pyecharts.charts import Line
from pyecharts import options as opts

# 创建一个折线图对象
line = Line()
# 给折线图对象添X抽的数据
Line.add_xaxis(["中国", "美国", "英国"])
# 给折线图对象添加则轴的数据
line.add_yaxis("GDP", [30, 20, 10])
# 给折线图对象添加标题
line.set_global_opts(
title_opts=opts.TitleOpts(title="GDP展示", pos_left="center", pos_bottom="bottom"), # 标题
legend_opts=opts.LegendOpts(is_show=True), # 图例
tooltip_opts=opts.TooltipOpts(is_show=True), # 提示框
toolbox_opts=opts.ToolboxOpts(is_show=True), # 工具箱
visualmap_opts=opts.VisualMapOpts(is_show=True, max_=30, min_=10) # 视觉映射
)
# 通过render方法,将代码生成为图像
line.render()

pyecharts的地图可视化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts

# 生成地图
map = Map()
# 设置地图的标题和数据
data = [("广东", 104), ("北京", 60), ("上海", 50), ("江苏", 30), ("浙江", 20)]
# 添加数据
map.add("中国地图", data, "china")
# 设置地图的标题和颜色
map.set_global_opts(
visualmap_opts=VisualMapOpts(
is_show=True, # 是否显示
is_piecewise=True, # 是否分段显示 手动设置
pieces=[ # 设置分段的颜色
{"min": 0, "max": 50, "label": "0-50", "color": "#50a3ba"},
{"min": 51, "max": 100, "label": "51-100", "color": "#e098c7"},
{"min": 101, "max": 150, "label": "101-150", "color": "#f6e8c3"},
{"min": 151, "max": 200, "label": "151-200", "color": "#f2c5a4"},
{"min": 201, "max": 300, "label": "201-300", "color": "#e0631a"},
{"min": 301, "max": 400, "label": "301-400", "color": "#b53b3a"},
{"min": 401, "max": 500, "label": "401-500", "color": "#b70f0a"},
],
)
)
# 绘制地图
map.render("basiclearning.html")