7-Python数据类型——列表和元组的详解(增删改查、索引、切片、步长、循环)
一、列表
1.1 列表 list
有序且可变的容器,可以存放多个不同类型的元素
列表就是专门用来记录多个同种属性的值
列表:存储同一个类别的数据,方便操作
- 字符串,不可变:即:创建好之后内部就无法修改【内置功能都是新创建一份数据】
name = "xiaochaun"
data = name.upper()
print(name)
print(data)
xiaochaun
XIAOCHAUN
-
列表,可变类型:即:创建好之后内部元素可以修改。
【功能基本上都是直接操作列表内部,不会创建一份新的数据】
user_list = ['车子','房子']
user_list.append("票子")
print(user_list)['车子', '房子', '票子']
列表的创建
列表名 = []
例:list01 = []
列表的增删改查
li = [2,3,4,6,8,9,10]
1.1.1 增 ,追加(在原列表中的尾部追加值)
1.append:添加一个数据,添加到列表的最后一位
语法:列表名.append("内容")
li.append("小川")
print(li)2.insert:添加一个数据,到指定的位置
语法:列表名.insert(下标位置,内容)
li.insert(0,"乃荣")
print(li)3.extend:添加一个序列类型,到最后一位,并且把序列类型拆分
语法:列表名.extend(序列类型)
# 会拆分追加进去
li.extend("大力")
print(li)
# 如果用一个中括号括起来的追加进去就不会拆分
li.extend(['大力'])
print(li)
1.1.2 删
1.pop:删除一个值,默认从最后一个开始删,也可以指定位置
语法:
列表名.pop()
列表名.pop(下标)
li.pop(-1)
print(li)
li.pop()
print(li)2.remove:删除一个指定的值,如有多个,就从第一个开始删
语法:列表名.remove(删除对象)
li.remove(3)
print(li)3.clear:清空列表里面的所有数据
语法:列表名.clear()
li.clear()
print(li)4.del 全局删除,可以删除一个变量
语法:
del 列表名
del 列表名[下标]
del li[3]
print(li)
1.1.3 改
1.单个修改:直接通过下标进行修改
语法:列表名[下标] = 内容
li[1] = "张三"
print(li)2.多个修改:通过切片方式进行修改
左闭右开
语法:列表名[起点:终点] = 数据1,数据2...
li[1:3] = 70,20
print(li)
1.1.4 查
1.index:根据内容获取指定数据的下标
语法:
列表名.index(要找的内容)
列表名.index(要找的内容,起点值)
print(li.index(8))
print(li.index(8,5))# 搜索值为8的数据,从下标5的位置开始往后搜索,没有就会报错,显示不在列表中2.count:统计数据出现的次数
语法:列表名.count(要找的内容)
print(li.count(70))
1.1.5 sort和sorted
排序(全int的列表才可以排序)
sort是在原列表上修改
sorted是返回一个新的列表
sort:让列表的内容按照顺序的方式来排列
语法:
列表名.sort()——》升序
列表名.sort(reverse = True)——》降序li = [2,3,400,68,38,9,10]
li.sort()
print(li)
li.sort(reverse=True)
print(li)[2, 3, 9, 10, 38, 68, 400]
[400, 68, 38, 10, 9, 3, 2]li1 = sorted(li) # 生成了一个新列表
print(li1)
1.1.6 列表生成式
生成一到十的列表
普通方式:
li = [1,2,3,4,5,6,7,8,9,10]
print(li)使用range(1,11)
print(list(range(1,11)))普通的列表生成式
普通的for循环创建列表
li = []
for i in range(1,11):li.append(i)
print(li)
列表生成式生成
print([i for i in range(1,10)])
[1x1,2x2,3x3,…9x9]
li = []
for i in range(1,10):li.append(i*i)
print(li)
列表生成式
print([i*i for i in range(1,10)])
可以写出非常简洁的代码,但是并不倡导大家平时开发去写这种东西,因为可读性不高,bug不好修改,建议在非常简单的情况下可以选择偷懒用列表生成式,而带if和多重for循环最好不要使用
[1*2,2*3,3*4...9*10]
print([i*(i+1) for i in range(1,10)])
1.1.7 功能
1.相加,两个元组相加获取生成一个新元组
2.相乘,元组*整形,将元组中的元素再创建n份并生成一个新的元组
3.获取长度
4.索引
5.切片
6.步长,隔多少取值
7.for循环
2.2 元组 tuple
不可变,只有查询方法,并且跟列表的用法一模一样
如果元素数量是固定的,建议使用元组,因为占用空间更小
元组通常是使用一对小括号将所有的元素包围起来的,但是小括号不是必须的,只要将各元素用逗号隔开就可以,python就会将其视为元组
# 定义一个元组
t = "python","jc"
print(t)
2.2.1 查
1.count()
用于统计某个元素在元组中出现的次数
t = (123,"Google","JD","Taobao",123)
print(t.count(123))
print(t.count("JD"))2
12.index():找到数据的下标值
从某个指定下标开始查询某个元素的下标值
t = (123,"Google","JD","Taobao",123)
print(t.index(123)) # 0
print(t.index(123,2)) # 4
2.3.2 功能
1.相加,两个元组相加获取生成一个新元组
data = ("张三","李四")+("王五","赵六")
print(data) # ('张三', '李四', '王五', '赵六')2.相乘,元组*整形,将元组中的元素再创建n份并生成一个新的元组
data = ("张三","李四")*2
print(data)3.获取长度
t = ('张三', '李四', '王五')
print(len(t)) # 34.索引
t = ('张三', '李四', '王五')
print(t[0])5.切片
t = ('张三', '李四', '王五', '赵六')
print(t[0:3]) # ('张三', '李四', '王五')
print(t[1:]) #('李四', '王五', '赵六')
6.步长,隔多少取值
t = ('张三', '李四', '王五', '赵六','赵本山')
print(t[1:4:2]) # ('李四', '赵六')
print(t[0::2]) # 从0开始到所有 隔2取 ('张三', '王五', '赵本山')7.for循环
t = ('张三', '李四', '王五', '赵六','赵本山')
for i in t:print(i)t = ('张三', '李四', '王五', '赵六','赵本山')
for i in t:if i == '王五':continueprint(i)
目前只有str,list,tuple可以被for循环
元组本身不可以改变,但是如果元组中还包含其他可变元素,这些可变元素即可改变
t = (99,88,77,['jc','18'],33)
t[3][0] = 'xf'
print(t)
相关文章:
7-Python数据类型——列表和元组的详解(增删改查、索引、切片、步长、循环)
一、列表 1.1 列表 list 有序且可变的容器,可以存放多个不同类型的元素 列表就是专门用来记录多个同种属性的值 列表:存储同一个类别的数据,方便操作 字符串,不可变:即:创建好之后内部就无法修改【内置…...
大数据-61 Kafka 高级特性 消息消费02-主题与分区 自定义反序列化 拦截器 位移提交 位移管理 重平衡
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
Google Gemma2 2B:语言模型的“小时代”到来?
北京时间8月1日凌晨(当地时间7月31日下午),Google发布了其Gemma系列开源语言模型的更新,在AI领域引发了巨大的震动。Google Developer的官方博客宣布,与6月发布的27B和9B参数版本相比,新的2B参数模型在保持…...
三线程顺序打印1-100
三线程顺序打印1-100 题目 三个线程顺序打印1-100; 解题 基本思路 首先需要创建三个线程, 确定使用线程1打印 num % 3 1 的数, 线程2打印 num % 3 2 的数, 线程3打印 num % 3 0 的数;使用 synchronized 同步锁让每次只有一个线程进行打印, 每个线程打印前先判断当前数是…...
中央处理器CPU
中央处理器CPU cpu的组成(从功能方面来看)cpu的执行过程★.取指令阶段★.解码阶段★.执行阶段 重点: 1.cpu的组成 2.cpu怎么执行程序(命令) cpu的组成(从功能方面来看) 寄存器:用来临…...
用Python实现AI人脸识别
实现AI人脸识别通常涉及到使用深度学习库,如TensorFlow或PyTorch,配合预训练的人脸识别模型。以下是一个使用Python和TensorFlow框架中的tensorflow_hub模块来加载和使用一个预训练的人脸识别模型的简单示例。 步骤 1: 安装必要的库 首先,你…...
MSPM0G3507_2024电赛自动行驶小车(H题)_问题与感悟
这次电赛题目选的简单了,还规定不能使用到摄像头,这让我之前学习的Opencv 4与树莓派无用武之地了,但我当时对于三子棋题目饶有兴趣,但架不住队友想稳奖,只能选择这个H题了...... 之后我还想抽空将这个E题三子棋题目做…...
C语言:指针(2)
一.数组名 在了解数组名前我们先看一段代码 int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0]; 根据我们上一篇学习的知识,我们知道&arr[0]是数组第一个元素的地址,这时我们再看另一段代码的运行结果。 #include <stdio.h> int ma…...
数组——二维数组
数组(中) 二维数组 定义 二维数组本质上是一个行列式的组合,也就是说二维数组是有行和列两部分构成。二维数组数据是通过行列进行解读。 二维数组可被视为一个特殊的一维数组,相当于二维数组又是一个一维数组,只不过它的元素是一维数组。 …...
深入 Vue 组件与状态管理的教程
目录 深入 Vue 组件与状态管理的教程第一部分:深入组件1. 理解插槽(Slots)的使用1.1 基础插槽示例1.2 具名插槽1.3 作用域插槽 第二部分:Vue Router1. 学习 Vue Router 的基本配置1.1 基本路由配置1.2 嵌套路由1.3 路由参数 2. 导…...
Spring Boot 实现异步处理多个并行任务
在现代Web应用开发中,异步处理和多任务并行处理对于提高系统的响应性和吞吐量至关重要。Spring Boot 提供了多种机制来实现异步任务处理,本文将介绍如何利用这些机制来优化您的应用程序性能。 1. 引言 在高负载情况下,如果所有的请求都采用…...
TiDB系列之:使用Flink TiDB CDC Connector采集数据
TiDB系列之:使用Flink TiDB CDC Connector采集数据 一、依赖项二、Maven依赖三、SQL Client JAR四、如何创建 TiDB CDC 表五、连接器选项六、可用元数据七、特征一次性处理启动阅读位置多线程读取DataStream Source 八、数据类型映射 TiDB CDC 连接器允许从 TiDB 数…...
每日一道算法题 最接近的三数之和
题目 16. 最接近的三数之和 - 力扣(LeetCode) Python class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:nums.sort()nlen(nums)ans0min_diffinf # infinite 无穷for i in range(n-2):tmpnums[i]li1rn-1while l<…...
搭建自己的金融数据源和量化分析平台(六):下载并存储沪深两市上市公司财报
基于不依赖wind、某花顺等第三方平台数据的考虑,尝试直接从财报中解析三大报表进而计算ROE等财务指标,因此需要下载沪深两市的上市公司财报数据,便于后续从pdf中解析三大报表。 深市爬虫好做,先放深市爬虫: 根据时间段…...
C语言-常见关键字详解
一、const 关键字const用于声明常量,赋值后,其值不能再被修改。 示例: const int MAX_COUNT 100; 二、static static关键字在不同情境下有不同作用: 1.函数中的静态变量:保留变量状态,仅初始化一次&a…...
异步编程之std::future(一): 使用
目录 1.概述 2.std::future的基本用法 3.使用 std::shared_future 4.std::future的使用场景 5.总结 1.概述 在编程实践中,我们常常需要使用异步调用。通过异步调用,我们可以将一些耗时、阻塞的任务交给其他线程来执行,从而保证当前线程的…...
Vue3 + JS项目配置ESLint Pretter
前言 如果在开发大型项目 同时为多人协作开发 那么 ESLint 在项目中极为重要 在使用 ESLint 的同时 也需要使用 Pretter插件 统一对代码进行格式化 二者相辅相成 缺一不可 1. 安装 VsCode 插件 在 VsCode 插件市场搜索安装 ESLint 和 Pretter 2. 安装依赖 这里直接在 pac…...
JavaScript (十四)——JavaScript typeof和类型转换
目录 JavaScript typeof, null, 和 undefined typeof 操作符 null undefined undefined 和 null 的区别 JavaScript 类型转换 JavaScript 数据类型 JavaScript 类型转换 将数字转换为字符串 将布尔值转换为字符串 将日期转换为字符串 将字符串转换为数字 一元运算符…...
CTF-web 基础
网络协议 OSI七层参考模型:一个标准的参考模型 物理层 网线,网线接口等。 数据链路层 可以处理物理层传入的信息。 网络层 比如IP地址 传输层 控制传输的内容的传输,在传输的过程中将要传输的信息分块传输完成之后再进行合并。 应用…...
CP AUTOSAR标准之ChineseV2XNetwork(AUTOSAR_SWS_ChineseV2XNetwork)(更新中……)
1 简介和功能概述 本文档指定了AUTOSAR基础软件模块中国车辆对接网络(CnV2xNet)的功能、API和配置。 中国车联网网络(CnV2xNet)与中国车联网消息(CnV2xMsg)、中国车联网管理(CnV2xMgt)、中国车联网安全(CnV2xSec)以及AUTOSAR BSW模块以太网接口(EthIf)共同构成了AUTOSAR架构…...
【hloc】 项目流程
hloc 项目流程 1. 数据集准备2. 特征提取3. 匹配特征4. 三维重建5. 定位6. 结果评估7. 示例脚本 这个项目涉及到了视觉定位和三维重建的一系列步骤,从特征提取、匹配、三维重建到定位和结果评估。通过提供的脚本文件,用户可以方便地运行整个流程。 1. 数…...
鸿蒙系统开发【应用接续】基本功能
应用接续 介绍 基于ArkTS扩展的声明式开发范式编程语言编写的一个分布式视频播放器,主要包括一个直播视频播放界面,实现视频播放时可以从一台设备迁移到另一台设备继续运行,来选择更合适的设备继续执行播放功能以及PAD视频播放时协同调用手…...
nextTick方法的作用是什么?什么时候会用到
nextTick 方法在 Vue.js 中扮演着重要的角色,它用于在下次 DOM 更新循环结束之后执行延迟回调。这主要用于确保在 Vue 完成 DOM 更新后执行依赖于 DOM 的操作。 作用 确保 DOM 更新完成:Vue 的 DOM 更新是异步的,当你修改了数据后࿰…...
多 NodeJS 环境管理
前言 对于某个项目依赖特定版本的 NodeJS,或几个项目的 NodeJS 版本冲突时,需要在系统中安装多个版本的 NodeJS,这时可以使用一些工具来进行多个 NodeJS 的管理。 有很多类似的 NodeJS 管理工具,如 nvm, nvs, n 等,接…...
解决网站被植入跳转木马病毒
概述 网站被植入跳转木马病毒是一种常见的安全威胁,它可能导致网站用户被重定向到恶意站点。本文将指导您如何检测、清除这类木马病毒以及采取预防措施。 步骤1:确认感染 首先,需要确认您的网站确实受到了跳转木马的影响。 示例ÿ…...
Node.js(6)——npm软件包管理
npm npm是Node.js标准的软件包管理器。 使用: 初始化清单文件:npm init-y(得到package.json文件,有则略过此命令)下载软件包:npm i 软件包名称使用软件包 示例: 初始状态下npm文件夹下只有server.js,下载软件包前看…...
区块链核心概念与技术架构简介
引言 区块链,一种分布式账本技术,不仅为数字货币提供了基础设施,更在金融、供应链、物联网等多个领域展现出广泛的应用前景。区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。 如果说蒸汽机释放了人们的…...
≌图概念凸显包含射线V的直线W是比V长的线
黄小宁 x轴中:各非负数点xh≥0都变回自己即都作恒等变换,其余点x-h都变号为xh就使x轴失去负数点而变为射线V{xh≥0}。这x轴变为射线V⊂x轴是不保距变换即不是x轴的刚体运动使x轴不≌V⊂x轴(小学生都知道x轴不≌射线V)。据≌图概念…...
子路由的配置方法?
子路由的配置方法主要涉及到在Vue-router中定义嵌套路由,即一个路由内部包含多个子路由。以下是配置子路由的基本步骤: 1. 定义父路由 首先,在Vue Router中定义父路由。父路由可以像其他普通路由一样定义,但通常会有一个组件与之…...
【大模型从入门到精通2】openAI api的入门介绍2
互动对话界面的搭建 让我们来看看如何建立一个互动对话界面,用户可以在此输入查询,系统实时处理并显示响应。 import panel as pn # 用于构建图形用户界面# 初始化对话历史记录和GUI组件 conversation_history [] input_widget pn.widgets.TextInpu…...
网站建设策划 流程/在线一键建站系统
Would you like to change the user interface language in any edition of Windows 7 or Vista on your computer? Here’s a free app that can help you do this quickly and easily. 您想在计算机的任何版本的Windows 7或Vista中更改用户界面语言吗? 这是一个…...
免费空间访问/seo搜索优化推广
【IT168 专稿】存储是目前IT产业发展的一大热点,而RAID技术是构造高性能、海量存储的基础技术,也是构建网络存储的基础技术。专家认为,磁盘阵列的性能优势得益于磁盘运行的并行性,提高设备运行并行度可以提高磁盘的性能和数据安全…...
app模板/海淀区seo全面优化
一、timeit包(上接连载9)1.我们对于timeit函数,可采取如下例子:h def doTt(num1):for i in range(num1):print(i)t6 timeit.timeit("doTt(2)",setuph,number3)print(t6)释义:setup负责把环境变量准备好,实际上相当于在…...
网站开发需求/什么是seo标题优化
[彻底解决 configparser 中文乱码问题,让你的 Python3 代码更加优雅] Python3 configparser 是一个非常重要的模块,它可以帮助我们读取和写入配置文件,很多项目都会用到这个模块。但是在使用过程中,我们可能会遇到中文乱码的问题,这给我们的编码工作带来了很大的困扰。 …...
宁波外贸公司为什么这么多/seo关键词排名优化如何
2019独角兽企业重金招聘Python工程师标准>>> 本文是从FISCO-BCOS的官方GitHub中的安装包进行安装的记录过程 1. Node.js环境准备 #nodejs安装 nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash source ~/.bashrc nvm ins…...
如何设计个人网站/关键词搜索数据
在华为mate40没有正式发布之前,当下话题最热的机型就是iPhone12了,四款手机也是分开时间段发布,目前6299元的基础版iPhone12人气最高,眼下也没有任何一款国产手机可以抗衡苹果5G手机,实在要找出一款可能就是接下来的华…...