Python核心编程 --- 高级数据类型

Python核心编程 — 高级数据类型

  • 字符串

  • 列表

  • 元组

  • 字典

1.序列

序列:一组按顺序排列的数据集合。

在Python中存在三种内置的序列类型:字符串、列表、元组

优点:可支持索引和切片操作

特点:第一个正索引为0,指向是左端,第一个索引是负数时,指向是右端。

1.1 切片

作用:可根据下标来获取序列对象的任意部分数据。

语法结构:序列[起始下标:结束下标:步长]

说明:从序列中,从指定位置开始,依次取出元素,到指定位置时结束,得到一个新序列。

  • 起始下标表示的是从哪开始,可以留空,留空视为从头开始

  • 结束下标表示从哪结束,可以留空,留空视为到结尾结束

  • 步长表示,依次取出元素的间隔,如步长1表示一个个取出元素,步长2表示每次跳过一个元素取,步长为负数时,反向取元素。

num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ret1 = num_list[1:5]   # 步长可省略不写,默认为1
print(f"结果1为{ret1}")num_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
ret2 = num_list[:]
print(f"结果2为{ret2}")num_str = "12345678910"
ret3 = num_list[::2]
print(f"结果3为{ret3}")num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ret4 = num_list[::-1]   # 步长可省略不写,默认为1
print(f"结果4为{ret4}")num_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
ret5 = num_list[3:1:-1]
print(f"结果5为{ret5}")num_str = "12345678910"
ret6 = num_str[::-2]
print(f"结果6为{ret6}")

在这里插入图片描述

补充:下标会越界,切片不会。

2.字符串及常用方法

2.1 下标索引
  • 从前向后,下标从0开始

  • 从后向前,下标从-1开始

2.2 查找特定字符串的下标索引值

语法结构:字符串.index(字符串)

names_str = "Hello"
print(names_str.index("o")) # 4
2.3 字符串的替换

语法结构:字符串.replace(字符串1, 字符串2)

作用:字符串1替换字符串2,字符串内的全部。

my_str = "Hello"
print(my_str.replace("He", "haha")) # hahallo
2.4 字符串的分割

作用:按指定的分隔符字符串,划分为多个字符串存入列表对象中。

my_str = "He ll o wo rl d"
print(my_str.split(" ")) # ['He', 'll', 'o', 'wo', 'rl', 'd']
2.5 字符串的规整操作
  • 去前后空格

语法结构:字符串.strip()

name_str = " he l l o  "
print(name_str.strip()) # "he l l o"
  • 去前后指定字符串

语法结构:字符串.strip(字符串)

name_str = "hellooeh"
print(name_str.strip('he')) # "llo"

注意:传入的是”he“,其实"h"和"e"都会被移除,按照单个字符。

2.6 统计字符串的字符个数

语法结构:len(字符串)

num = len(name_str)
print(f"字符串{name_str}的长度是:{num}") # 字符串hello的长度是:5
2.7 总结
1字符串[下标]据下标索引取出特定位置的字符
2字符串.index(字符串)查找特定字符串的下标索引值
3字符串.replace(字符串1, 字符串2)字符串1替换字符串2,字符串内的全部。
4字符串.split(分隔符字符串)按指定的分隔符字符串,划分为多个字符串存入列表对象中。
5字符串.strip() 字符串.strip(字符串)移除首尾的空格或指定字符串
6字符串.count(字符串)统计某字符串中某字符串出现的次数
7len(字符串)统计字符串的字符个数
2.8 字符串的遍历 - while循环
str = "hello"
index = 0
while index < len(str):print(str[index])index += 1
2.9 字符串的遍历 - for循环
str = "hello"
index = 0
for i in str:print(i)
2.10 特点
  • 只可存储字符串

  • 长度任意

  • 支持下标索引

  • 允许重复字符串存在

  • 不可修改

  • 支持for循环

3.列表及常用操作

功能:

  • 插入元素

  • 删除元素

  • 修改元素

  • 统计元素个数

  • 清空列表

3.1 查找指定某元素的下标

语法结构:列表.index(元素)

name_list = ["he", "ll", "o"]
index = name_list.index("ll")
print(f"ll在列表中的下标索引值为:{index}")
# 输出:ll在列表中的下标索引值为:1
3.2 修改指定位置的元素值

语法结构:列表[下标] = 值

name_list = ["he", "ll", "o"]
name_list[1] = "he"
print(f"列表中的下标1的值被改后,结果是:{name_list}")
# 输出:列表中的下标1的值被改后,结果是:['he', 'he', 'o']
3.3 插入元素

说明:在指定的位置,插入指定的元素。

语法结构:列表.insert(下标, 元素)

name_list = ["he", "ll", "o"]
name_list.insert(1, "ha")
print(f"列表中的下标1的位置被插入指定元素后,结果是:{name_list}")
# 输出:列表中的下标1的位置被插入指定元素后,结果是:['he', 'ha', 'll', 'o']
3.4 追加元素方式1

说明:将指定元素,追加到列表的尾部。

语法结构:列表.append(元素)

name_list = ["he", "ll", "o"]
name_list.append("hehe")
print(f"列表追加了元素后,结果是:{name_list}")
# 输出:列表追加了元素后,结果是:['he', 'll', 'o', 'hehe']
3.5 追加元素方式2

说明:将其他数据容器的内容取出,依次追加到列表尾部。

语法结构:列表.extend(其他数据类型)

name_list = ["he", "ll", "o"]
name_list.extend(["wo", "r", "ld"])
print(f"列表追加了元素后,结果是:{name_list}")
# 输出:列表追加了元素后,结果是:['he', 'll', 'o', 'wo', 'r', 'ld']
3.6 删除元素

语法结构1:del 列表[下标]

语法结构2:列表.pop(下标)

# 方法1
name_list = ["he", "ll", "o"]
del name_list[1]
print(f"列表被删除元素后,结果是:{name_list}")
# 输出:列表被删除元素后,结果是:['he', 'o']# 方法2
name_list = ["he", "ll", "o"]
name_list.pop(1)
print(f"列表被删除元素后,结果是:{name_list}")
# 输出:列表被删除元素后,结果是:['he', 'o']
3.7 删除某元素在列表中的第一个匹配项

语法结构:列表.remove(元素)

name_list = ["he", "ll", "o", "he"]
name_list.remove("he")
print(f"列表被移除元素后,结果是:{name_list}")
# 输出:列表被移除元素后,结果是:['ll', 'o', 'he']
3.8 清空列表

语法结构:列表.clear()

name_list = ["he", "ll", "o", "he"]
name_list.clear()
print(f"列表被清空后,结果是:{name_list}")
# 输出:列表被清空后,结果是:[]
3.9 统计某元素在列表中的数量

语法结构:列表.count(元素)

name_list = ["he", "ll", "o", "he"]
print(f"列表中he的数量是:{name_list.count("he")}")
# 输出:列表中he的数量是:2
3.10 统计列表元素个数

语法结构:len(列表)

name_list = ["he", "ll", "o", "he"]
print(f"列表中的元素个数有:{len(name_list)}")
# 输出:列表中的元素个数有:4
3.11 总结
编号使用方法作用
1列表.append(元素)在列表中追加一个元素到尾部
2列表.extend(容器)其他数据容器内容取出,依次追加到列表尾部。
3列表.insert(下标, 元素)在指定的位置,插入指定的元素。
4del 列表[下标]删除列表指定下标元素
5列表.pop(下标)删除列表指定下标元素
6列表.remove(元素)删除某元素在列表中的第一个匹配项
7列表.clear()清空列表
8列表.count(元素)统计某元素在列表中的数量
9列表.index(元素)查找指定某元素的下标
10len(列表)统计列表元素个数
3.12 列表的特点
  • 可容纳多个元素

  • 可容纳不同类型的元素

  • 有序存储数据

  • 允许重复数据

  • 可修改

3.13 列表的遍历 — while循环

语法结构

index = 0
while index < len(列表):元素 = 列表[index]元素的处理index += 1
name_list = ["he", "l", "l", "0", "!"]
index = 0
while index < len(name_list):element = name_list[index]print(f"列表下标为{index}的元素是{element}")index += 1

在这里插入图片描述

3.14 列表的遍历 — for循环

语法结构

for 临时变量 in 数据容器:临时变量的处理
name_list = ["he", "l", "l", "0", "!"]
index = 0
for element in name_list:print(f"列表元素有{element}")

在这里插入图片描述

4.元组及常用操作

  • 查找方法:index

  • 统计方法:count

  • 统计元组元素数量:len

# 查找方法
t1 = ("he", "l", "l", "0", "!")
index = t1.index("0")
print(f"t1元组中的元素o的下标是:{index}")# 统计方法
t2 = ("he", "l", "l", "l", "o", "!")
num = t2.count("l")
print(f"t2元组中的元素l的数量有:{num}")# 统计元组元素数量
t3 = ("he", "l", "l", "o", "!")
num = len(t3)
print(f"t3元组的元素的数量有:{num}")

在这里插入图片描述

4.1 总结:
1index(元素)查找某个数据对应的下标,不存在就报错
2count(元素)统计某个数据在当前元组所出现的次数
3len(元组)统计元组内元素的数量
4.2 元组的遍历 — while循环
t1 = ("he", "l", "l", "0", "!")
index = 0
while index < len(t1):element = t1[index]print(f"元组t1的元素有:{element}")index += 1

在这里插入图片描述

4.3 元组的遍历 — for循环
t1 = ("he", "l", "l", "0", "!")
index = 0
for element in t1:print(f"元组t1的元素有:{element}")

在这里插入图片描述

4.4 元组的特点
  • 可容纳多个数据

  • 可容纳不同类型的数据

  • 数据有序存储

  • 允许重复数据存在

  • 不可修改

  • 支持for循环

5.字典及常用操作

5.1 定义

作用:可通过Key,取到对应的Value。

语法结构

# 定义字典字面量
{key: value, key: value, .......,key: value}
# 定义字典常量
my_dict = {key: value, key: value, ......, key: value}
# 定义空字典
my_dict = {}
my_dict = dict()
my_dict1 = {"小明": 18, "小红": 19, "小王": 20}
my_dict2 = {}
my_dict3 = dict()
print(f"mydict1字典的内容是{my_dict1},类型是{type(my_dict1)}")
print(f"mydict2字典的内容是{my_dict2},类型是{type(my_dict2)}")
print(f"mydict3字典的内容是{my_dict3},类型是{type(my_dict3)}")# 重复Key的字典
my_dict4 = {"小明": 18, "小明": 20, "小红": 19}
print(f"重复Key的my_dict4的内容是{my_dict4}")

在这里插入图片描述

5.2 数据的获取

语法结构:字典[Key]

my_dict = {"小明": 18, "小红": 19, "小王": 20}
print(my_dict["小明"]) # 18
print(my_dict["小红"]) # 19
print(my_dict["小王"]) # 20
5.3 嵌套

字典中的Key和Value可以是任意数据类型,Key不可为字典。

score_dict = {"小明": {"语文": 80, "数学": 90, "英语": 81},"小红": {"语文": 85, "数学": 88, "英语": 83},"小王": {"语文": 87, "数学": 80, "英语": 87}}
print(f"考试信息是:{score_dict}")
Xiaohong_English_score = score_dict["小红"]["英语"]
print(f"小红的英语成绩是{Xiaohong_English_score}")

在这里插入图片描述

5.4 新增元素

语法结构:字典[Key] = Value

student_score = {"小明": 80, "小红": 90, "小王": 88}
student_score["小李"] = 84
print(student_score) # {'小明': 80, '小红': 90, '小王': 88, '小李': 84}
5.5 更新元素

语法结构:字典[Key] = Value

student_score = {"小明": 80, "小红": 90, "小王": 88}
student_score["小明"] = 84
print(student_score) # {'小明': 84, '小红': 90, '小王': 88}
5.6 删除元素

语法结构:字典.pop(Key)

student_score = {"小明": 80, "小红": 90, "小王": 88}
delete_score = student_score.pop("小明")
print(delete_score)  # 80
print(student_score) # {'小红': 90, '小王': 88}
5.7 清空字典

语法结构:字典.clear()

student_score = {"小明": 80, "小红": 90, "小王": 88}
student_score.clear()
print(student_score) # {}
5.8 获取全部的Key

语法结构:字典.Keys()

student_score = {"小明": 80, "小红": 90, "小王": 88}
obtain_value = student_score.keys()
print(obtain_value) # dict_keys(['小明', '小红', '小王'])
5.9 字典的遍历
student_score = {"小明": 80, "小红": 90, "小王": 88}
obtain_value = student_score.keys()
for key in obtain_value:print(f"Key:{key}")print(f"Value:{student_score[key]}")
# Key:小明
# Value:80
# Key:小红
# Value:90
# Key:小王
# Value:88
5.10 统计字典内的元素数量

语法结构:len(字典)

student_score = {"小明": 80, "小红": 90, "小王": 88}
num = len(student_score )
print(num) # 3
5.11 总结
编号操作说明
1字典[Key] = Value新增元素
2字典[Key] = Value更新元素
3字典.pop(Key)删除元素
4字典.clear()清空字典
5字典.Keys()获取字典内全部的Key
6len(字典)统计字典内的元素数量
5.12 特点
  • 可容纳多个数据

  • 可容纳多个不同类型的数据

  • 每份数据是Key与Value值对应

  • 可通过Key去获取Value,Key不可重复

  • 不支持下标索引

  • 可修改

  • 支持for循环

6.公用操作

6.1 合并操作+

适用于字符串,列表,元组

功能:两个对象相加操作,合并两个对象

语法结构:对象+对象

str1 = "hello"
str2 = "python"
print(str1+str2) # hellopython
6.2 *复制

适用于字符串,列表,元组

功能:对象自身按指定次数进行+操作

语法结构:对象*次数

str1 = "hello"
print(str1*3) # hellohellohello
6.3 in 判断元素是否存在

适用于字符串,列表,元组,字典

返回结果是一个bool值

功能:判断指定元素是否存在于对象中

语法结构:字符 in 对象

str1 = "hello"
lo"
print("e" in str1) # True

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于python+vue学生作业管理系统flask-django-nodejs-php

快速发展的社会中&#xff0c;人们的生活水平都在提高&#xff0c;生活节奏也在逐渐加快。为了节省时间和提高工作效率&#xff0c;越来越多的人选择利用互联网进行线上打理各种事务&#xff0c;然后线上管理系统也就相继涌现。与此同时&#xff0c;人们开始接受方便的生活方式…

【深度学习】基于机器学习的无机钙钛矿材料形成能预测,预测形成能,神经网络,回归问题

文章目录 任务分析数据处理处理离散数值处理缺失值处理不同范围的数据其他注意事项 我们的数据处理模型训练网页web代码、指导 任务分析 简单来说&#xff0c;就是一行就是一个样本&#xff0c;要用绿色的9个数值&#xff0c;预测出红色的那1个数值。 数据处理 在进行深度数…

浅析ArcGis中的软件——ArcMap、ArcScene、 ArcGlobe、ArcCatalog

为什么要写这么一篇介绍ArcGis的文章呢&#xff1f;因为大部分人也包括ArcGisdada&#xff0c;在使用ArcMap应用程序创建工程时总以为我们就是使用了ArcGis这个软件的所有。其实不然&#xff0c;在后期的接触和使用中慢慢发现原来ArcMap只是ArcGis这个综合平台的一部分&#xf…

现在阿里云云服务器租用多少钱?一张表,报价单

2024年阿里云服务器优惠价格表&#xff0c;一张表整理阿里云服务器最新报价&#xff0c;阿里云服务器网整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单&#xff0c;大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新的云服务器优惠券…

<c语言学习>结构体

结构体类型 为什么要有结构体 我们用c语言描述年龄时候&#xff0c;可以定义一个整形类型来实现&#xff1a; int age; age 18; printf("年龄为%d",age); (c语言描述年龄) 由于年龄这一属性比较单一&#xff0c;类似性别、某游戏角色攻击力、血量都可以用c语言内置…

string类详解及重要函数实现

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今日主菜&#xff1a;string类 主厨&#xff1a;邪王真眼 所属专栏&#xff1a;c专栏 主厨的主页&#xff1a;Chef‘s blog 前言&#xff1a; 咱们之前也是…

第十三届蓝桥杯物联网试题(省赛)

做后感悟&#xff1a; OLED显示函数需要一直显示&#xff0c;所以在主函数中要一直循环&#xff0c;为了确保这个检错功能error只输出一次&#xff0c;最好用中断串口进行接收数据&#xff0c;数据收完后自动进入中断函数中&#xff0c;做一次数据检查就好了&#xff0c;该开灯…

银行数字人民币系统应用架构设计

2019年10月&#xff0c;01区块链联合数字资产研究院发布了《人民币3.0&#xff1a;中国央行数字货币运行框架与技术解析》&#xff0c;从数字货币界定和人民币发展历程出发&#xff0c;区分了央行数字货币与比特币、移动支付等的区别&#xff0c;全面介绍了央行数字货币的发展历…

Linux设备驱动开发 - 三色LED呼吸灯分析

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 展锐UIS7885呼吸灯介绍呼吸灯调试方法亮蓝灯亮红灯亮绿灯展锐UIS7885呼吸灯DTS配置ump9620 PMIC驱动ump9620中的LED呼吸灯驱动LED的tr…

代码+视频,R语言logistic回归交互项(交互作用)的可视化分析

交互作用效应(p for Interaction)在SCI文章中可以算是一个必杀技&#xff0c;几乎在高分的SCI中必出现&#xff0c;因为把人群分为亚组后再进行统计可以增强文章结果的可靠性&#xff0c;不仅如此&#xff0c;交互作用还可以使用来进行数据挖掘。在既往文章中&#xff0c;我们已…

【理解机器学习算法】之分类问题的模型评估(ROC-AUC)

ROC曲线&#xff08;接收者操作特性曲线&#xff09;和AUC&#xff08;曲线下面积&#xff09;是在不同阈值设置下&#xff0c;用于分类问题的性能度量工具。下面是它们所代表的含义以及使用方法&#xff1a; ROC曲线 代表含义&#xff1a;ROC曲线是一个图形化的表示&#xf…

掌握收支明细,轻松记录收支明细,一键打印财务自由

在繁忙的生活中&#xff0c;你是否曾感到对个人的财务状况一头雾水&#xff1f;是否曾在需要证明收支情况时手忙脚乱&#xff0c;翻箱倒柜地寻找凭证&#xff1f;今天&#xff0c;我要向你揭示一个简单而高效的方法&#xff0c;帮助你轻松记录收支明细&#xff0c;并一键打印&a…

Cesium 默认选中框设置

Cesium 默认提供的选中框 进来关注下不迷人&#xff0c;还有更多集合专栏&#xff01; 1、设置状态&#xff1a; 设置false 就不会出现这个默认的状态&#xff0c;如果需要修改如下&#xff1a; viewer._selectedEntitynewEntity newEntity 就是你需要设置选中框的样式 可以…

BGP4+简介

定义 BGP是一种用于自治系统AS&#xff08;Autonomous System&#xff09;之间的动态路由协议&#xff0c;常用版本是BGP-4&#xff0c;BGP-4只能传递IPv4路由。针对IPv6的BGP4扩展&#xff0c;通常称为BGP4。 目的 BGP4用于在AS之间传递路由信息&#xff0c;并不是所有情况…

python - 更改pdf中文本的字体高亮颜色(fitz模块)

import fitzdoc fitz.open(r"e:/test.pdf") pagedoc[0]# 按照指定的位置设置颜色 highlight page.add_highlight_annot((20, 500,60, 520)) highlight.set_colors(stroke[1, 1, 0]) # light red color (r, g, b) 颜色rgb每个除以255得出 highlight.update()# 按照…

YZ系列工具之YZ09: VBA_Excel之读心术

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套一部VBA手册&#xff0c;教程分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的…

大数据分析-基于Python的电影票房信息数据的爬取及分析

概要 现如今&#xff0c;人民群众对物质生活水平的要求已不再局限于衣食住行&#xff0c;对于精神文化有了更多的需求。电影在我国越来越受欢迎&#xff0c;电影业的发展越来越迅猛&#xff0c;为了充分利用互联网技术的发展&#xff0c;掌握电影业的态势&#xff0c;对信息进行…

uniapp 写安卓app,运行到手机端 调试

手机 设置》关于手机》点击版本号 4-5次&#xff0c;弹出手机锁屏页面&#xff0c;输入手机锁屏密码 2.手机 设置中 》搜索 开发人员选项 》 调试》打开USB调试 同页面 找到 选择USB配置》选择 MIDIhbuilder 编辑器 点击 》运行》运行到手机或模拟器》运行到Android App基座 》…

打卡--MySQL8.0 三 (SQL语言)

SQL语言介绍 SQL 是 Structured Query Language&#xff08;结构化查询语言&#xff09;的缩写。 SQL 是用来与关系数据库进行通信的。 它是关系数据库管理系统的标准语言。 SQL 语句用于执行任务&#xff0c;如更新数据库中的数据&#xff0c;或从数据库中检索数据。 一些常见…

【滑动窗口】长度最小的子数组|无重复字符的最长子串|最大连续1的个数 III|将 x 减到 0 的最小操作数

1. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 1.题目解析&#xff1a; 2.算法原理 &#xff08;1&#xff09;方法一&#xff1a;暴力列举出所有的子数组的和 时间复杂度&#xff1a;O&#xff08;n**2&#xff09;&#xff1a;枚举所有子数组O&#xff08;…