做课件用这15大网站,接外包活去什么平台,西安高端网站制作公司,广西建设执业资格注册中心官网一、数据容器概念
相关介绍#xff1a;
一种可以容纳多份数据的数据类型#xff0c;容纳的每一份数据称之为一个元素。每一个元素#xff0c;可以是任意类型的数据分为五类#xff1a;列表[list]、元组(tuple)、字符串(str)、集合{set}、字典{dict}
相应区别#xff1a…一、数据容器概念
相关介绍
一种可以容纳多份数据的数据类型容纳的每一份数据称之为一个元素。每一个元素可以是任意类型的数据分为五类列表[list]、元组(tuple)、字符串(str)、集合{set}、字典{dict}
相应区别
列表元祖字符串集合字典元素数量多个多个多个多个多个元素类型任意任意仅字符任意key(除字典外任意):value(任意)下表索引支持支持支持不支持不支持重复元素支持支持支持不支持不支持可否修改支持不支持不支持支持支持数据有序是是是否否
相应特点
都支持for循环集合、字典不支持无法下标索引
列表 有一批数据需要可修改、可重复的存储场景元祖 有一批数据不可以修改、但可以重复的存储场景字符串一串文本字符串的存储场景集合 有一批数据需要去重存储场景字典 有一批数据需要用key检索value的存储场景
二、数据容器-列表[list]
解释存放数据但可以修改
语法[元素1,元素2,...]1. 列表的创建
# 案例
name_list [1,sadas,True,4,5] # 多种类型也可以嵌套多个列表
print(name_list)
print(type(name_list)) # 输出都是列表类型 class list2. 列表的方法
2.1. 查询元素
语法列表.index(元素)
# 案例
my_list [python,wl,1]
index my_list.index(python)
print(findex的下表索引值是: {index}) # 输出02.2. 索引获取元素
# 案例
name_list [1,sadas,True,4,5] # 代表0,1,2,3,4,5 或者 -5.-4,-3,-2,-1
print(name_list[0]) # 输出1
print(name_list[-5]) # 输出1# 案例
name_list [[1,sadas],[True,4,5]] # 嵌套多个列表
print(name_list[0][0]) # 输出1
print(name_list[1][0]) # 输出True2.3. 修改索引元素
语法列表[下标] 值
# 案例
my_list [python,wl,1]
my_list[2] 2 # 正向下标
print(f修改后my_list值: {my_list}) # 输出[python, wl, 2]my_list[-1] -1 # 正向下标
print(f修改后my_list值: {my_list}) # 输出[python, wl, -1]2.4. 插入列表元素
语法列表.insert(下标,元素) 指定索引位置插入
# 案例
my_list [python,wl,1]
my_list.insert(0,888)
print(f插入一个数888后{my_list}) # 输出[888, python, wl, 1]2.5. 追加元素
语法列表.append(元素), 追加到尾部
# 案例
my_list [python,wl,1]
my_list.append(999) # 也可以追加新列表 my_list.append([555,222])
print(f最后追加元素999{my_list}) # 输出[python, wl, 1, 999]2.6. 删除元素
语法1 del 列表[下标] del 仅仅完成删除
# 案例
my_list [python,wl,1] # 语法1
del my_list[0] # 注意括号del 仅仅完成删除
print(f删除第一个python: {my_list}) # 输出[wl, 1]语法2 列表.pop(下标) 不仅删除元素还可以返回值得到它
#案例
my_list [python,wl,1] # 语法2
my_pop my_list.pop(0) # 注意括号pop不仅删除还可以返回值得到它
print(f删除第一个python: {my_list},删除的是 {my_pop}) # 输出[wl, 1],删除的是 python语法3 列表.remove(元素) 删除某一个元素从前往后第一个删除
# 案例
my_list [python,python,wl,1] # 语法3
my_list.remove(python) # 只删除第一个
print(f删除第一个python: {my_list}) # 输出[python, wl, 1]2.7. 清空元素
语法 列表.clear()
# 案例
my_list [python,wl,1]
my_list.clear()
print(f全部清空列表,结果是{my_list}) # 输出[]2.8. 统计某个元素
语法 列表.count()
# 案例
my_list [1,2,2,1,3,4]
count my_list.count(1)
print(f列表1的数量是{count}) # 输出22.9. 统计所有元素
语法len(列表)
# 案例
my_list [python,wl,1]
print(len(my_list)) # 输出33. 列表的遍历
3.1. 利用while循环获取元素
解释1.自定循环条件自行控制 2.通过条件控制做到无限循环
# 案例 依次取出列表元素
my_list [python,wl,1]
print(type(my_list))
index 0
while index len(my_list): # len 表示列表中总数小于0进行循环a my_list[index]print(f列表的 {index}元素{a})index 1 # index index 13.2. 利用for循环获取元素
解释1.不可以自定循环条件只能从容器里取出数据 2.理论不可以无限循环
# 案例 依次取出列表元素
my_list [python,3,4,5]
for a in my_list:print(f列表的元素{a})3.3. 利用pandas制作表格并存储
# 案例
import pandas as pdlist [{mtime: 2022-12-05, title: 国家卫健委, digest: 全国累计报告接种新冠病毒疫苗344429.5万剂次}, {mtime: 2022-12-05, title: 5日0—12时重庆, digest: 新增本土确诊病例73例和本土无症状感染者919例}]
data pd.DataFrame(list)
print(data)
# 输出
# mtime title digest
# 0 2022-12-05 国家卫健委 全国累计报告接种新冠病毒疫苗344429.5万剂次
# 1 2022-12-05 5日0—12时 重庆 新增本土确诊病例73例和本土无症状感染者919例# 存入数据,utf-8-sig编码防止中文乱码
data.to_csv(sj1.csv,encodingutf-8-sig)3.4. 使用for循环依次打印数据
# 案例
list [{mtime: 2022-12-05, title: 国家卫健委, digest: 全国累计报告接种新冠病毒疫苗344429.5万剂次}, {mtime: 2022-12-05, title: 5日0—12时重庆, digest: 新增本土确诊病例73例和本土无症状感染者919例}]
for item in list:mtime item[mtime]title item[title]digest item[digest]print(f{mtime}, {title}, {digest})
# 输出
# 2022-12-05, 国家卫健委, 全国累计报告接种新冠病毒疫苗344429.5万剂次
# 2022-12-05, 5日0—12时重庆, 新增本土确诊病例73例和本土无症状感染者919例3.5. 使用while循环依次打印数据
# 案例
list [{mtime: 2022-12-05, title: 国家卫健委, digest: 全国累计报告接种新冠病毒疫苗344429.5万剂次}, {mtime: 2022-12-05, title: 5日0—12时重庆, digest: 新增本土确诊病例73例和本土无症状感染者919例}]
x 0
while x len(list):mtime list[x][mtime]title list[x][title]digest list[x][digest]print(f{mtime}, {title}{digest})x 1# 输出
# 2022-12-05, 国家卫健委, 全国累计报告接种新冠病毒疫苗344429.5万剂次
# 2022-12-05, 5日0—12时重庆, 新增本土确诊病例73例和本土无症状感染者919例三、数据容器-元祖(tuple)
解释存放数据不可修改(只读方式)但可以修改元素内容
语法(元素1元素2...)1. 元祖的创建
# 案例
my1_tuple (python,wl,1)
my2_tuple () # 空元祖方式1
my3_tuple tuple() # 空元祖方式2
my4_tuple (python,) # 注意定义一个元祖需要加,否则就成了字符串类型
my5_tuple ([python,wl],1) # 注意元祖里的列表可以删除修改等
print(fmy1_tuple类型是: {type(my1_tuple)},内容是{my1_tuple})
print(fmy2_tuple类型是: {type(my2_tuple)},内容是{my2_tuple})
print(fmy3_tuple类型是: {type(my3_tuple)},内容是{my3_tuple})
print(fmy4_tuple类型是: {type(my4_tuple)},内容是{my4_tuple})
print(fmy5_tuple类型是: {type(my5_tuple)},内容是{my5_tuple})
my5_tuple[0][1] 修改内容
print(f修改的内容后{my5_tuple}) # 输出([python, 修改内容], 1)
del my5_tuple[0][0] # 删除元祖中的列表值
print(f删除元祖中列表第一个值{my5_tuple}) # 输出([wl], 1)2. 元祖的方法
2.1. 元祖-获取元素
# 案例
my_tuple ((1,2,3),(7,8,9)) # 元祖支持嵌套
print(fmy_tuple取出9的数据: {my_tuple[1][2]}) # 输出92.2. 元祖-查询元素
语法 元祖.index
# 案例
my_tuple (python,wl,1,python)
print(my_tuple.index(python)) # 输出02.3. 元祖-统计某个元素
语法 元祖.count
# 案例
my_tuple (python,wl,1,python)
print(my_tuple.count(python)) # 输出22.4. 统计-统计所有元素
语法 元祖.count
# 案例
my_tuple (python,wl,1,python)
print(len(my_tuple)) # 输出43. 元祖的遍历
3.1. 利用while循环获取元素
解释1.自定循环条件自行控制 2.通过条件控制做到无限循环
# 案例 依次取出元祖元素
my_tuple (python,wl,1)
print(type(my_tuple))
index 0
while index len(my_tuple): # len 表示列表中总数小于0进行循环a my_tuple[index]print(f元祖的 {index}元素{a})index 1 # index index 13.2. 利用for循环获取元素
解释1.不可以自定循环条件只能从容器里取出数据 2.理论不可以无限循环
# 案例 依次取出元祖元素
my_tuple (python,3,4,5)
print(type(my_tuple))
for a in my_tuple:print(f元祖的元素{a})四、数据容器-字符串(str)
特点不支持修改
1. 字符串的方法
1.1. 字符串-索引获取元素
注意空格也算一个字符
# 案例
my_str i is wl
v1 my_str[0]
v2 my_str[-1]
print(f首个值v1{v1},最后值v2{v2}) # 输出v1i, v2c1.2. 字符串-查找元素
语法字符串.index(值)
# 案例
my_str i is wl
v my_str.index(is)
print(fand的起始下标v{v}) # 输出21.3. 字符串-替换元素
语法字符串.replace(原值现值)
# 案例
my_str i is wl
v my_str.replace(i,t)
print(f把所有的i替换成t{v}) # 输出t ts wl1.4. 字符串-分割元素
语法字符串.split(分割值)
# 案例
my_str i is wl
v my_str.split( ) # 空格切分
print(f用空格风格my_str{v}) # 输出[i, is, wl]1.5. 字符串-规整元素
语法字符串.strip(去除值) 空代表去除前后空格
# 案例
my_str 12i is wl21
v my_str.strip(12) # 去除12,实际去除“1”和“2”
print(f去掉12后my_str{v}) # 输出i is wl1.6. 字符串-统计某个元素
语法字符串count(统计值)
#案例
my_str i is wl
v my_str.count(i)
print(fi出现的次数{v}) # 输出21.7. 字符串-统计所有元素
语法字符串len()
#案例
my_str i is wl
v len(my_str)
print(fmy_str总数长度是{v}) # 输出8五、数据容器-集合{set}
特点相比其他不支持重复集合自带去重并且输出是无序的
语法 变量 {元素1元素2....}1. 集合的创建
#案例
my_set {python,wl,4,wl}
print(my_set) # 输出{python, 4, wl}故是无序的不支持下标2. 集合的方法
2.1. 集合-增加元素
# 案例
my_set {python,wl,4,wl}
my_set.add(Python) # 如果增加相同数据等于没有写
print(f增加一个数my_set结果是{my_set}) # 输出{wl, Python, python, 4}2.2. 集合-移除元素
# 案例
my_set {python,wl,4,wl}
my_set.remove(python) # 删除所有再去重
print(f移除一个数my_set结果是{my_set}) # 输出{wl, 4}2.3. 集合-随机取出元素
# 案例
my_set {python,wl,4,wl}
element my_set.pop() # 随机取无法指定
print(f{element}) #
print(f随机取一个数my_set结果是{my_set}) # 2.4. 集合-清空元素
# 案例
my_set {python,wl,4,wl}
my_set.clear()
print(f清空my_set结果是{my_set}) # 输出set()2.5. 集合-取(消除)两个集合的差
# 案例
set1 {1,2,3}
set2 {2,3,4}
f_set set1.difference(set2)
print(f除set1中有而set2没有的结果是{f_set}) # 输出{1}
set1.difference_update(set2) # 消除差集集合2不变化
print(set1) # 输出{1}
print(set2) # 输出{2, 3, 4}2.6. 集合-合并元素
# 案例
set1 {1,2,3}
set2 {2,3,4}
set3 set1.union(set2)
print(f集合合并后set3{set3}) # 输出去重{1, 2, 3, 4}2.7. 集合-统计元素数量去重
# 案例
set1 {1,2,3,2,3,4}
num len(set1)
print(f集合合并后set3{num}) # 输出去重4 3. 集合的遍历
说明因为不支持下标索引所以while循环不支持,支持for循环
# 案例
set1 {1,2,3,2,3,4}
for a in set1:print(f集合元素有{a})六、数据容器-字典{dict}
解释字和其相关联的含义 注意字典可以任意类型不允许重复会覆盖
语法 变量 {key:value,key:value.....}1. 字典的创建
# 案例
my_dict {张三:99,李四:98,王五:90}
print(fmy_dict类型是{type(my_dict)}内容是{my_dict}) # 输出class dict2. 字典的方法
2.1. 字典-key取值
# 案例
my_dict {张三:99,李四:98,王五:90}
s my_dict[张三]
print(f张三对应的值是{s}) # 输出:992.2. 字典-嵌套取值
# 案例
my_dict {张三:{语文:99,数学:70},李四:{语文:88,数学:80},王五:{语文:80,数学:68}
}
s my_dict[王五][数学]
print(f王五对应的数学值是{s}) # 输出682.3. 字典-新增元素
# 案例
my_dict {张三:99,李四:98,王五:90}
my_dict[赵六] 77
print(f新增赵六成绩后{my_dict})2.4. 字典-更新元素
# 案例
my_dict {张三:99,李四:98,王五:90}
my_dict[张三] 77
print(f新增赵六成绩后{my_dict})2.5. 字典-删除元素
# 案例
my_dict {张三:99,李四:98,王五:90}
my_dict.pop(张三)
print(f删除张三后{my_dict})2.6. 字典-清空元素
# 案例
my_dict {张三:99,李四:98,王五:90}
my_dict.clear()
print(f清空后{my_dict})2.7. 字典-取key、value值
# 案例
my_dict {张三:99,李四:98,王五:90}
s my_dict.keys()
print(f{s})
for s in my_dict: # for循环输出value值,不支持while循环print(f{my_dict[s]})2.8. 字典-统计所有元素
# 案例
my_dict {张三:99,李四:98,王五:90}
num len(my_dict)
print(f数量是{num}) # 输出33. 字典的综合案例
要求对名次为3的语文增加10分并晋升一名次
# 案例
my_dict {张三:{名次:8,语文:99,数学:70},李四:{名次:10,语文:88,数学:80},王五:{名次:3,语文:80,数学:68}
}
print(f升级之前是{my_dict})for name in my_dict:if my_dict[name][名次] 3: # 当名次为3时my_dict[name][名次] 2 # 晋升一名次改为2,my_dict[name][语文] 10 # 语文成绩10分
print(f升级之后是{my_dict})七、数据容器的切片 解释从一个序列中取出子序列 语法序列[起始下标:结束下标:步长] 步长1表示一个个取2表示间隔一个取 1. 列表list
# 案例
my_list [0,1,2,3,4,5,6,7,8,9]
result_1 my_list[1:3] # 步长默认是1可以不写
print(f从第二个到四个取result_1结果是{result_1})2. 元祖tuple
# 案例
my_tuple (0,1,2,3,4,5,6,7,8,9)
result_2 my_tuple[::2] # 空代表从头到尾,2代表步长
print(f从头到尾间隔1result_2结果是{result_2})3. 字符串
# 案例
my_str 0123456789
result_3 my_str[::-2]
print(f从尾到头间隔1result_3结果是{result_3})# 案例 正常取出数 我是你哥
my_str 哥大我叫请啊哥你是我好你
s1 my_str[::-1][3:7] # 先倒转再取值。注意最后的下标索引
print(f方式s1结果是{s1})
s2 my_str[7:11][::-1] # 先取值再倒转。注意最后的下标索引
print(f方式s2结果是{s2})
s3 my_str.split()[1].replace(啊,)[::-1] # 先用分割取值第二个再把“啊”替换掉 最后倒序
print(f方式s3结果是{s3})八、数据容器的通用操作排序、转换
# 案例
my_list [1,2,3,4,5]
my_tuple (1,2,3,4,5)
my_str abcdefgh
my_set {1,2,3,4,5}
my_dict {key1:1,key2:2,key3:3}1. 容器取值max
print(f列表 最大元素是{max(my_list)})
print(f元祖 最大元素是{max(my_tuple)})
print(f字符串 最大元素是{max(my_str)})
print(f集合 最大元素是{max(my_set)})
print(f字典 最大元素是{max(my_dict)})2. 容器转列表
print(f列表 转列表是{list(my_list)})
print(f元祖 转列表是{list(my_tuple)})
print(f字符串 转列表是{list(my_str)})
print(f集合 转列表是{list(my_set)})
print(f字典 转列表是{list(my_dict)})3. 容器转元祖
print(f列表 转元祖是{tuple(my_list)})
print(f元祖 转元祖是{tuple(my_tuple)})
print(f字符串 转元祖是{tuple(my_str)})
print(f集合 转元祖是{tuple(my_set)})
print(f字典 转元祖是{tuple(my_dict)})4. 容器转字符串、集合
解释字典dict不支持缺少键值对字符串、集合都是无序)
5. 容器的排序
5.1. 排序
语法sorted(容器,reverseFalse)
print(f列表 排序是{sorted(my_list)})
print(f元祖 排序是{sorted(my_tuple)})
print(f字符串 排序是{sorted(my_str)})
print(f集合 排序是{sorted(my_set)})
print(f字典 排序是{sorted(my_dict)})5.2. 降序
print(f列表 排序是{sorted(my_list,reverseTrue)})
print(f元祖 排序是{sorted(my_tuple,reverseTrue)})
print(f字符串 排序是{sorted(my_str,reverseTrue)})
print(f集合 排序是{sorted(my_set,reverseTrue)})
print(f字典 排序是{sorted(my_dict,reverseTrue)})5.3. 根据数字下标定义排序方法 sort
my_list [[a,67],[a,7],[a,52]]# 方式1
def sort_key(element):return element[1]
my_list.sort(keysort_key,reverseFalse) # True/flase:表示升序降序# 方式2 利用匿名函数lambda
my_list.sort(keylambda element:element[1],reverseFalse)
print(my_list)