python入门篇07-数据容器(序列 集合 字典,json初识)基础(下)

全文目录,一步到位

  • 1.前言简介
    • 1.1 专栏传送门
      • 1.1.1 上文传送门
  • 2. python基础使用
    • 2.1 序列
      • 2.1.1 序列定义
      • 2.1.2 序列参数解释
      • 2.1.3 列表list切片
      • 2.1.4 元组tuple切片
      • 2.1.5 字符串str切片
    • 2.2 集合定义
      • 2.2.1 set集合-基本语法
      • 2.2.2 set集合-添加元素`.add()`
      • 2.2.3 set集合- 移除元素`remove()`
      • 2.2.4 set集合- 随机取出一个元素`pop()`
      • 2.2.5 set集合- 清空集合`clear()`
      • 2.2.6 set集合- 取出两个集合的差集 `difference() `
      • 2.2.7 set集合- 消除差集`difference_update()`
      • 2.2.8 set集合- 集合并集 `union()`
      • 2.2.9 set集合- 统计set集合元素数量 `len()`
      • 2.2.10 set集合- 循环遍历元素`for`
    • 2.3 字典定义
      • 2.3.1 定义字典
      • 2.3.2 key重复的效果
      • 2.3.3 获取value结果
      • 2.3.4 嵌套(字典类型)
      • 2.3.5 字典数据操作准备工作
      • 2.3.6 新增元素
      • 2.3.7 修改元素
      • 2.3.8 删除元素 (取出并删除)`pop()`
      • 2.3.9 清空元素 `clear()`
      • 2.3.10 获取全部的key` keys()`
      • 2.3.11 统计字典元素个数
    • 2.4 json定义
      • 2.4.1 json详细介绍
  • 3. 基础语法总结案例
    • 3.1 根据str1字符串 取出 `三好学生` 字符串
      • 3.1.1 方法一: 先倒序 在操作
      • 3.1.2 方法二: 先操作 在倒序
      • 3.1.3方法(3-n)种 直接切片截取 然后倒序
    • 3.2
      • 3.2.1
      • 3.2.2
  • 4. 文章的总结与预告
    • 4.1 本文总结
    • 4.2 下文预告


1.前言简介

1.1 专栏传送门

文章待续未完 , 差一个字典 这几天补充

1.1.1 上文传送门

python入门篇06-数据容器(列表 元组 字符串)基础(上)

2. python基础使用

2.1 序列

2.1.1 序列定义

内容连续 有序 可使用下标索引的一类 数据容器, 如下均可以成为序列:

  • 列表
  • 元组
  • 字符串

关键词解释:
切片解释: [1,2,3,4,5] 取出 [2,3,4] 跟subSting()意思>> 差不多
步长解释 表示依次取的元素 (间隔-1)

2.1.2 序列参数解释

正常操作 [arg1,arg2,arg3]

  • arg1 开始下标(包含) : 表头部
  • arg2 终止下标(不包含) : 表尾部
  • arg3 (步长 1 依次取 2 隔一个取) 负数就是倒序

2.1.3 列表list切片

list1 = [0, 1, 2, 3, 4, 5, 6]
print(list1[1:4])  # [1, 2, 3]  print(list1[1:4:1])等效 1可不写
print(list1[-1:-4:-1])  # [6, 5, 4]
print(list1[7:3:-1])  # [6, 5, 4]

2.1.4 元组tuple切片

tuple1 = (0, 1, 2, 3, 4, 5, 6)
print(tuple1[:])  # (0, 1, 2, 3, 4, 5, 6)  :表示全部取出
print(tuple1[::-2])  # (6, 4, 2, 0)

2.1.5 字符串str切片

str1 = "张三同学, 被评选为三好学生, 大家鼓掌"
print(str1[::2])  # :从头开始 :一直到结尾 跳2-1个元素取出
print(str1[::-1])  # 掌鼓家大 ,生学好三为选评被 ,学同三张 (反转了)

2.2 集合定义

理解: 无序不重复的序列 用: {}表示 <class ‘set’>
与java中的set集合理解相同

2.2.1 set集合-基本语法

set1 = {1, 4, 2, 5, 4, 5, 4, 6, 2, 7}  # 集合
set2 = set()  # 定义空集合
print(set1)  # {1, 2, 4, 5, 6, 7}
print(type(set1))  # <class 'set'>

2.2.2 set集合-添加元素.add()

添加新元素 并且不存在的

set1.add(5)
set1.add(20)
print(set1)  # {1, 2, 4, 5, 6, 7, 20}

2.2.3 set集合- 移除元素remove()

set1.remove(1)
print(set1)

2.2.4 set集合- 随机取出一个元素pop()

pop = set1.pop()
print(f"取出的元素{pop},剩余集合是: {set1}")

2.2.5 set集合- 清空集合clear()

set1.clear()
print(set1)  # set()

2.2.6 set集合- 取出两个集合的差集 difference()

生成新集合

set01 = {1, 2, 3}
set02 = {1, 5, 6}
set03 = set01.difference(set02)  # 找到set01 不在set02集合内的元素
print(set01)
print(set02)
print(set03)  # {2, 3}

2.2.7 set集合- 消除差集difference_update()

(直接修改set01) 不生成新集合

set01 = {1, 2, 3}
set02 = {1, 5, 6}
set01.difference_update(set02)  # 消除差集 set01将与set02重复的元素删除 (直接修改set01)
print(set01)   # {2, 3}
print(set02)   # {1, 5, 6}

2.2.8 set集合- 集合并集 union()

生成并集后的新集合

set01 = {1, 2, 3}
set02 = {1, 5, 6}
set03 = set01.union(set02)
print(set01)  # 不变
print(set02)  # 不变
print(set03)  # {1, 2, 3, 5, 6}

2.2.9 set集合- 统计set集合元素数量 len()

print(len(set01))
print("")

2.2.10 set集合- 循环遍历元素for

for i in set01:print(i)

2.3 字典定义

字典 数据容器 (理解: java的 map k-v)

2.3.1 定义字典

dict1 = {"name": "张三", "age": 18}
dict2 = {}
dict3 = {}print(type(dict2))
print(dict1)
print(dict2)
print(dict3)

2.3.2 key重复的效果

字典中的key是不可以重复的. 如果重复是会直接覆盖掉上一key, 示例如下(pycharm会直接警告)

dict1 = {"name": "张三", "name": 18}
print(dict1)  # {'name': 18} 直接覆盖上一个重复的 不会报错

2.3.3 获取value结果

使用方式: 变量名[key名]

dict1 = {"name": "张三", "age": 18}
print(dict1["name"])  # 张三

2.3.4 嵌套(字典类型)

长得跟json串相同

message = {"张三": {"age": 20, "nickName": "张三丰", "address": "中国"},"李四": {"age": 50, "nickName": "李四丰", "address": "地球"},"王五": {"age": 80, "nickName": "王五丰", "address": "月球"}
}
print(type(message))  # <class 'dict'>
print(message["张三"]["age"])  # 20
print(message["李四"]["nickName"])  # 李四丰
print(message["王五"]["address"])  # 月球

2.3.5 字典数据操作准备工作

新增 只要传递的key不存在 则为新增 传递的key存在,则为修改

dict1 = {"name": "张三", "age": 18}
print(dict1)

2.3.6 新增元素

传递不存在key = 新增

dict1["address"] = "地球"
print(dict1)  # {'name': '张三', 'age': 18, 'address': '地球'}

2.3.7 修改元素

传递存在的key = 修改

dict1["age"] = 36
print(dict1)  # {'name': '张三', 'age': 36, 'address': '地球'}

2.3.8 删除元素 (取出并删除)pop()

字典中删除元素 返回值是此元素

address = dict1.pop("address")
print(address)  # 地球
print(dict1)  # {'name': '张三', 'age': 36}

2.3.9 清空元素 clear()

结果是一个空字典{}

dict1.clear()
print(dict1)  # {}

2.3.10 获取全部的key keys()

返回一个列表

dict1 = {"name": "张三", "age": 18}
print(dict1.keys())  # dict_keys(['name', 'age'])

循环遍历元素

# ---> 遍历key(方法一)
for key in dict1.keys():print(f"{key},{dict1[key]} ", end="")  # name,张三 age,18
print("")# ---> 直接for循环(方法二: )
for key in dict1:print(f"{key},{dict1[key]} ", end="")  # name,张三 age,18
print("")

2.3.11 统计字典元素个数

print(len(dict1))  # 2

2.4 json定义

java中前后端联调交互必备, 一种有规则的字符串

2.4.1 json详细介绍

在这里插入图片描述

3. 基础语法总结案例

3.1 根据str1字符串 取出 三好学生 字符串

str1 = "掌鼓家大,生学好三为选评被,学同三张"

3.1.1 方法一: 先倒序 在操作

3.1.2 方法二: 先操作 在倒序

3.1.3方法(3-n)种 直接切片截取 然后倒序

print(str1[-10:-14:-1])  # 全是倒着截取 然后再倒序print(str1[8:4:-1])      # 反截取位置 然后倒序print(str1[::-1][9:13])  # 先倒序 在截取print(str1[5:9][::-1])  # 先截取在倒序

3.2

3.2.1

3.2.2

4. 文章的总结与预告

4.1 本文总结

4.2 下文预告



作者pingzhuyan 感谢观看

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

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

相关文章

51单片机+EC11编码器实现可调参菜单+OLED屏幕显示

51单片机+EC11编码器实现可调参菜单+OLED屏幕显示 📍相关篇《stc单片机使用外部中断+EC11编码器实现计数功能》 🎈《STC单片机+EC11编码器实现调节PWM输出占空比》 🌼实际操作效果 🍁整个项目实现框架: 📓EC11接线原理图: 📓项目工程简介 📝仅凭借一个EC11编…

小谈设计模式(23)—桥接模式

小谈设计模式&#xff08;23&#xff09;—桥接模式 专栏介绍专栏地址专栏介绍 桥接模式主要角色抽象部分实现部分分析 核心思想应用场景123 优缺点分析优点123 缺点12 总结 专栏介绍 专栏地址 link 专栏介绍 主要对目前市面上常见的23种设计模式进行逐一分析和总结&#x…

tcpdump(二)命令行参数讲解(一)

一 tcpdump实战详解 1、我们做抓包,一般都需要指定条件,保证对系统的CPU、内存、磁盘资源不会产生过大的响应备注&#xff1a; 遇到过tcpdump持续抓包导致系统挂了2、条件&#xff1a;1) tcpdump的 基础命令选项参数2) 真正的 过滤条件 ① 参数学习思路 思路&#xff1a;…

32、Flink table api和SQL 之用户自定义 Sources Sinks实现及详细示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

使用Spring Initailizr功能~

Spring Initializr是一个用于快速生成Spring Boot项目的在线工具&#xff0c;它允许用户选择所需的Spring Boot版本、添加所需的依赖&#xff0c;并生成一个可用的项目结构&#xff0c;包括基本的配置文件和代码框架&#xff0c;它能够简化Spring Boot项目的初始化过程&#xf…

在win10里顺利安装了apache2.4.41和php7.4.29以及mysql8.0.33

一、安装apache和php 最近在学习网站搭建。其中有一项内容是在windows操作系统里搭建apachephp环境。几天前根据一本书的上的说明尝试了一下&#xff0c;在win10操作系统里安装这两个软件&#xff1a;apache2.4.41和php7.4.29&#xff0c;安装以后apche能正常启动&#xff0c;…

【LeetCode刷题笔记】排序

905. 按奇偶排序数组 解题思路&#xff1a; 1&#xff09;额外数组 两次遍历&#xff0c;第一遍将所有的 偶数 放到结果数组 res 的前面&#xff0c;第二遍将所有的 奇数 接着放到结果数组 res 的后面。也可以使用 对撞指针 往结果数组里存&#xff0c;在 一次遍历 内搞定。 2…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 八)

其他状态管理概述 除了前面章节提到的组件状态管理和应用状态管理&#xff0c;ArkTS还提供了Watch和$$来为开发者提供更多功能&#xff1a; Watch用于监听状态变量的变化。$$运算符&#xff1a;给内置组件提供TS变量的引用&#xff0c;使得TS变量和内置组件的内部状态保持同步…

【Overload游戏引擎分析】画场景栅格的Shader分析

Overload引擎地址&#xff1a; GitHub - adriengivry/Overload: 3D Game engine with editor 一、栅格绘制基本原理 Overload Editor启动之后&#xff0c;场景视图中有栅格线&#xff0c;这个在很多软件中都有。刚开始我猜测它应该是通过绘制线实现的。阅读代码发现&#xff0…

Maven 编译速度慢?使用一个小技巧提升 Maven 编译速度!

最近在工作中使用 Maven 编译 Java 项目&#xff0c;但是使用 Maven 编译并安装&#xff0c;平均耗时 6 分钟以上。 为了提升工作效率&#xff0c;我们可以通过设置 Maven 编译参数来提升 Maven 的编译速度。 打开 IDEA Maven 界面&#xff0c;设置参数 Thread count 为 2C&a…

【算法小课堂】二分查找算法

简单思路&#xff1a; 当我们要从一个序列中查找一个元素的时候&#xff0c;最快想到的方法就是顺序查找法&#xff08;即&#xff1a;从前到后依次查找&#xff09;。但这种方法过于无脑&#xff0c;就是暴力的把每个元素都排查一遍。元素个数少的时候还行&#xff0c;一旦元…

3D孪生场景搭建:3D漫游

上一篇 文章介绍了如何使用 NSDT 编辑器 制作模拟仿真应用场景&#xff0c;今天这篇文章将介绍如何使用NSDT 编辑器 设置3D漫游。 1、什么是3D漫游 3D漫游是指基于3D技术&#xff0c;将用户带入一个虚拟的三维环境中&#xff0c;通过交互式的手段&#xff0c;让用户可以自由地…

11个在线免费调整图像大小而不会降低质量工具

图片对于增强您的网站、博客和其他在线平台的视觉效果非常重要&#xff0c;而这些图片的正确尺寸在这里起着重要作用。如果您有多种尺寸的图像并且想要调整为一个尺寸&#xff0c;可以使用多种在线图像调整工具。使用在线工具&#xff0c;没有软件下载或安装的麻烦&#xff0c;…

解决SpringBoot Configuration Annotation Processor not configured

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 问题描述 在使用ConfigurationProperties注解和EnableConfigurationProperties注解时&#xff0c;IDEA报错&#xff1a;SpringBoot Configuration Annotation Processor no…

JVM篇---第八篇

系列文章目录 文章目录 系列文章目录一、虚拟机为什么使用元空间替换了永久代?二、什么是Stop The World ? 什么是OopMap?什么是安全点?三、说一下JVM 的主要组成部分及其作用?一、虚拟机为什么使用元空间替换了永久代? 「什么是元空间?什么是永久代?为什么用元空间代…

C#,数值计算——数据建模Fitab的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// Fitting Data to a Straight Line /// </summary> public class Fitab { private int ndata { get; set; } private double a { get; set; } …

智能化物流管理:全国快递物流查询API的角色与优势

前言 当今社会&#xff0c;物流行业已经成为了国民经济的重要组成部分&#xff0c;而快递物流则是物流行业中的一个重要分支。随着信息技术的不断发展&#xff0c;智能化物流管理正逐渐成为快递物流领域的趋势&#xff0c;而全国快递物流查询API作为其中的一部分&#xff0c;在…

孩子用台灯哪种好用?热门好用的全新护眼台灯推荐

目前大多数的孩子因为学习的各大压力&#xff0c;每天学习到很晚&#xff0c;导致眼睛视力受到了影响&#xff0c;经常出现眼睛酸痛、眯眼睛第问题&#xff0c;作为一名专业的养生师&#xff0c;我非常建议入手近年爆火的护眼台灯能够解决学习是的光线问题。但是护眼台灯行业这…

R可视乎|灯芯柱状图代码解读

简介 这篇推文代码来源于&#xff1a;TidyTuesday&#xff0c;主要想学习如何绘制灯芯柱状图&#xff08;名字小编瞎取的&#xff09;&#xff0c;最终结果如下&#xff1a; 注释&#xff1a;与普通柱状图相比&#xff0c;灯芯柱状图不仅可以展示随时间变化的总体趋势&#xf…

使用vite+npm封装组件库并发布到npm仓库

组件库背景&#xff1a;使用elementplusvue封装了一个通过表单组件。通过JSX对el-form下的el-input和el-button等表单进行统一封装&#xff0c;最后达到&#xff0c;通过数据即可一键生成页面表单的功能。 1.使用vite创建vue项目 npm create vitelatest elementplus-auto-form…