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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web学习笔记(四十三)ajax

目录 1.相关基础概念 1.1客户端与服务器 1.2URL地址 1.3 客户端和服务器端通信的过程 1.4 一个URL地址放入浏览器&#xff0c;到页面渲染发生了什么事情 1.5 数据 1.6资源的请求方式 2.Ajax 2.1什么是Ajax 2.2 jQuery 中的Ajax 2.2.1 $.get()的语法 2.2.2$.post()…

Spring Cloud Alibaba Sentinel 使用详解

一、Sentinel 介绍 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景&#xff1a; Sentinel 承接了阿里巴…

Linux-Arm环境下配置编译qt-everywhere及交叉编译环境

前言 最近在搞交叉编译的事&#xff0c;手上拿了个同事的香橙派玩交叉编译&#xff0c;现在来到了第一步&#xff0c;就是先在arm上配置qt的开发环境。当然了Qt没有直接提供qt on arm&#xff0c;而是需要自行在arm环境下编译一个qt环境出来&#xff0c;所以这里需要使用到qt提…

集简云新增“文本语音转换”功能,实现智能语音交互

为丰富人工智能领域的应用集成&#xff0c;为用户提供更便捷和智能化的信息获取和视觉创作方式&#xff0c;本周集简云上线了内置应用—文本语音转换。目前支持OpenAI TTS和TTS HD模型&#xff0c;实现文本语音高效智能转换&#xff0c;也可根据你的产品或品牌创建独特的神经网…

lvgl 窗口 windows lv_port_win_visual_studio 版本 已解决

不知道的东西&#xff0c;不知道lvgl窗口。一切从未知开始 lv_port_win_visual_studio 主分支 对应的分支 v7版本更新git submodule update --init --recursive同步 lvgl代码随后打开 visualSudio 打开.sln 文件 编译 release模式 允许 一切正常代码部分

Windows Insiders WSLg Linux GUI App 支持尝鲜

2021 年 4 月 21 日&#xff0c;微软在 Developer Blogs 发布了 Windows 预览版 WSL&#xff08;Windows Linux 子系统&#xff09; 对 Linux GUI App 的支持的公告&#x1f517;&#xff0c;碰巧&#x1f600;我最近重装了波电脑&#xff0c;系统换成了 Windows Insiders&…

【数据结构刷题专题】——二分查找

二分查找 二分查找模板题&#xff1a;704. 二分查找 二分查找前提&#xff1a; 有序数组数组中无重复元素 左闭右闭&#xff1a; class Solution { public:int search(vector<int>& nums, int target) {int left 0;int right nums.size() - 1;while (left <…

​CC-EasyCommonInput: 基于uni-app原生input组件封装的增强实用输入框组件

CC-EasyCommonInput&#xff1a;基于uni-app原生input组件封装的增强实用输入框组件 摘要&#xff1a; 在前端开发中&#xff0c;输入框&#xff08;Input&#xff09;是一个常见的UI组件&#xff0c;用于获取用户输入的数据。然而&#xff0c;为了满足不同的业务需求和用户体验…

LED显示屏视频播放器的8大功能

随着中国LED显示屏企业的规模发展和产品技术的不断创新&#xff0c;LED显示屏在各个领域中的应用得到了广泛推广。然而&#xff0c;LED显示屏的出色表现离不开LED视频播放器这一关键设备的支持。下面将介绍LED视频播放器的8大功能&#xff0c;以及它们如何提升LED显示屏的显像效…

VSCode最强插件合集,助你代码开发效率翻倍!

大家好&#xff0c;我是宝哥。 今天给大家推荐14个VSCode靠前的编程辅助插件&#xff0c;它们可以帮助你提高代码编写、调试、阅读和管理效率。 1.ESLint 简介&#xff1a;用于检查JavaScript代码的语法和风格错误。 功能特色&#xff1a;支持多种规则&#xff0c;可以自定义规…

stdlib.h中的 atoi 函数

记忆方法&#xff1a; atoi可以理解为 arr to int 表示将char类型的字符串转换成int类型的整数。例如"1234"转换成 1234。 传入值传出值&#xff1a;int atoi(char* arr); 将arr里面的字符型数字转变成整形数字。函数开始会跳过除了0到9的数字字符&#xff0c;…

STM32初识3

中断和事件 什么是中断&#xff1f; 中断是指计算机运行过程中&#xff0c;出现某些意外情况需主机干预时&#xff0c;机器能自动停止正在运行的 程序并转入处理新情况的程序&#xff0c;处理完毕后又返回原被暂停的程序继续运行。 什么是EXTI&#xff1f; …

【办公类-16-07-08】“2023下学期 大班户外游戏2(做成打印用的的贴墙版样式--A4横版撑满)”(python 排班表系列)

背景需求&#xff1a; 运用代码做出了中班每个班级用的户外游戏&#xff08;新版&#xff09;的表格&#xff08;包含有场地的贴墙版和无场地的贴周计划版&#xff09; 【办公类-16-07-07】“2023下学期 大班户外游戏2&#xff08;有场地和无场地版&#xff0c;每天不同场地&…

部署prometheus 监控k8s集群

目录 1、主机清单 2、拉取镜像 3、服务安装 4、安装prometheus-operator 5、查看custom metrics api 6、获取prometheus端口 7、将 alertmanager-main 、grafana、prometheus-k8s的端口暴露出来 8、再次查看prometheus端口 9、浏览器访问IP&#xff1a;31940 部署k8集群…

【Linux】线程的概念{虚拟地址堆区细分/缺页中断/页/初识线程/创建线程/优缺点}

文章目录 1.前导知识1.1 虚拟地址空间的堆区1.2 缺页中断1.3ELF文件格式1.4页/页框/页帧/页表/MMU1.5虚拟地址到物理地址 2.初识Linux线程2.1之前所学的进程2.2线程的引入2.3如何理解线程2.4如何理解轻量级进程 3.创建线程3.1pthread_create()函数3.2程序测试3.3Makefile怎么写…

Ps:色彩平衡

色彩平衡 Color Balance命令可改变阴影、中间调、高光中的颜色平衡&#xff0c;从而改善图像的整体色彩表现或为图像创造特定的氛围。 Ps菜单&#xff1a;图像/调整/色彩平衡 Adjustments/Color Balance 快捷键&#xff1a;Ctrl B Ps菜单&#xff1a;图层/新建调整图层/色彩平…

飞桨ONNX推理部署初探

ONNX&#xff0c;全称Open Neural Network Exchange&#xff08;开放神经网络交换&#xff09;&#xff0c;是一个用于表示深度学习模型的标准&#xff0c;它定义了一组与环境、平台均无关的标准格式。这使得不同的人工智能框架&#xff0c;如飞桨、MXNet等&#xff0c;可以采用…

【Vue】Vue集成Element-UI框架

&#x1f64b;‍ 一日之际在于晨 ⭐本期内容&#xff1a;Vue集成Element-UI框架 &#x1f3c6;系列专栏&#xff1a;从0开始的Vue之旅 文章目录 Element-UI简介安装Element-UInpm安装CDN安装 引入Element-UI测试是否引入成功总结 Element-UI简介 Element-UI官网&#xff1a;点…

划线铸铁平台是怎样进行人工采刮的——北重

划线铸铁平台是一种用于进行平整和划线的工具。它通常由铸铁制成&#xff0c;表面平整且耐用。人工采刮是一种在平台上使用刮刀进行刮擦的方法&#xff0c;以平整和划线。 以下是人工采刮的步骤&#xff1a; 1. 准备平台&#xff1a;确保划线铸铁平台表面清洁&#xff0c;没有…

多级页表查询

说明一下这个三级页表的查询&#xff0c;会需要上面的L2,L1,L0 如果在二级页表level就是2&#xff0c;PGSHIFT是12&#xff0c;那么就是往左移129*2位置&#xff0c;在&9bit就得到L2&#xff0c;其他以此类推 也表查询&#xff0c;首先有跟页表的地址pagetable&#xff0c;…