1.12 数组列表

序列:存储一堆数据的集合/容器

列表、字符串、元组、集合、字典

序列通用操作

索引/角标

>>> arr[0] 1

>>> arr[8] 9

>>> arr[-1] # 倒数第1个 9

>>> arr[-2] # 倒数第2个 8

>>> arr[-100]

Traceback (most recent call last): File "", line 1, in IndexError: list index out of range

>>> arr[100]

Traceback (most recent call last): File "", line 1, in IndexError: list index out of range

 切片 就是获取序列中某一个连续子区间

 

序列名[a : b : c] 跟 range(a, b, c) 基本类似

>>> arr[2:]                        # 从角标2开始向尾遍历 步长为1

[3, 4, 5, 6, 7, 8, 9]

>>> arr[2::2]                      # 从角标2开始向尾遍历 步长为2

[3, 5, 7, 9]

>>> arr[:6]                         # 从头开始到角标6(不取) 步长为1

[1, 2, 3, 4, 5, 6]

>>> arr[:6:3]                      # 从头开始到角标6(不取) 步长为3

[1, 4]

>>> arr[:]                           # 从头到尾

[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> arr[::]

[1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> arr[::2]

[1, 3, 5, 7, 9]

=======================================

特殊的

>>> arr[-1:-7]        # 从尾到头 步长必须负数

[]

>>> arr[-1:-7:-1]

[9, 8, 7, 6, 5, 4]

>>> arr[-9:7]            # 从头到尾 步长为正数

[1, 2, 3, 4, 5, 6, 7]

>>> arr[0:7]

[1, 2, 3, 4, 5, 6, 7]

>>> arr[-9:-2]              # 从头到尾 步长为正数

[1, 2, 3, 4, 5, 6, 7]

连接和重复 + *

成员资格

>>> 1 in arr

True

>>> 10 in arr

False

长度与最值

>>> len(arr) # 获取序列的长度

9

>>> len(arr)

9

>>> max(arr)

9

>>> min(arr)

1

>>> s = "ABC"

>>> len(s)

3

>>> max(s)

'C'

>>> min(s)

'A'

常见操作

创建问题

"""

列表

1.存储多个数据 数据不一定都是同一个类型 但是为了方便操作 建议存一样的类型

2.可以通过索引/角标来访问元素

3.可变长的数组 我们后续可以在列表中进行 增 删

4.用一对中括号[ ]

"""

# 创建一个的列表

arr = []

print(arr)

# 创建一个具有若干元素的列表

arr = [1, 2, 3, 4]

print(arr)

# 创建一个具有长度但是没有值的列表

arr = [None] * 5

print(arr)

# 通过【列表推导式/解析式】来进行创建

# [目标值表达式 for 目标值 in 迭代对象 if ....]

# 创建1~100当中 能够被3整除 且 能够被5整除 的所有数字

"""

循环方法:

for x in range(1, 101):

        if x % 3 == 0 and x % 5 == 0:

                print(x)

"""

arr = [ x    for x in range(1, 101)    if x % 3 == 0 and x % 5 == 0]

       对象        循环                             条件

print(arr)

# 创建1~100当中 偶数

arr = [x for x in range(1, 101) if x % 2 == 0]

print(arr)

# 水仙花数

for num in range(100, 1000):

        a = num % 10

        b = num // 10 % 10

        c = num // 100

        if a ** 3 + b ** 3 + c ** 3 == num:

                print(num)

arr = [num for num in range(100, 1000) if (num % 10) ** 3 + (num // 10 % 10) ** 3 + (num // 100) ** 3 == num]

print(arr)

arr = [x * 3 + "哈哈" for x in "ABCDEFG"]

print(arr)

# 通过输入来获取元素

"""

5 "1" "2" "3" "4" "5"

"""

n = eval(input())

arr = input().split(" ") # 将输入的数据以空格分割 分割的结果就是列表

print(arr)

arr = [int(x) for x in arr 字符串数组]

print(arr)

遍历问题

arr = [1,2,3,4,5,6,7,8,9]

# 通过角标遍历

for i in range(len(arr)):

        print(arr[i])

# 通过foreach遍历

for num in arr:

        print(num)

最值问题

arr = [1,2,3,4,5,6,7,8,9]

# 最大值

maxNum = arr[0]

minNum = arr[0]

for i in range(1, len(arr)):

        if arr[i] > maxNum:

                maxNum = arr[i]

         if arr[i] < minNum:

                minNum = arr[i]

print(maxNum)

print(minNum)

存在性问题

arr = [1,2,3,4,5,4,6,4,7,8,9]

# 元素是否存在

key = 10 for num in arr:

        if num == key:

                print("存在")

                break

        else:

                print("不存在")

# 元素在哪个位置 从左到右第1次出现角标 不存在返回-1

key = -4

index = 0

for i in range(len(arr)):

        if arr[i] == key:

                index = i

                break

else:

       index = -1

print(index)

翻转问题 

arr = [1,2,3,4,5,6,7,8,9,10]

# 0 1 2 3 4 5 6 7 8

arr = arr[-1::-1]

print(arr)

for i in range(0, len(arr) // 2):

        j = len(arr) - 1 - i

        arr[i], arr[j] = arr[j], arr[i]

print(arr)

left = 0

right = len(arr) - 1

while left <= right:

arr[left], arr[right] = arr[right], arr[left]

        left += 1

        right -= 1

print(arr)

排序算法

  • 选择排序
  • 冒泡排序
  • 插入排序
  • 查找算法

二分查找:要求数据必须有序 

arr = [1,2,3,4,5,6,7,8,9]

minIndex = 0

maxIndex = len(arr) - 1

midIndex = (minIndex + maxIndex) // 2

key = 8

while arr[midIndex] != key:

        if arr[midIndex] < key:

                minIndex = midIndex + 1

        else:

                maxIndex = midIndex - 1

        if minIndex > maxIndex:

                midIndex = -1

                break

        midIndex = (minIndex + maxIndex) // 2

print(midIndex)

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

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

相关文章

目标检测——RCNN系列学习(二)Faster RCNN

接着上一篇文章&#xff1a;目标检测——RCNN系列学习(一&#xff09;-CSDN博客 主要内容包含&#xff1a;Faster RCNN 废话不多说。 Faster RCNN [1506.01497] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (arxiv.org)https://arxiv.…

docker 部署 Epusdt - 独角数卡 dujiaoka 的 usdt 支付插件

部署 部署说明 部署之前必须注意的几点事项,该教程不一定适合所有用户: 本教程主要是使用 docker 部署,宝塔用户或宿主机直接安装的用户请直接参考官网教程.本教程是独立部署 epusdt,使用独立的mysql和redis,与dujiaoka项目分开. 在研究的过程中发现 epusdt 也需要用到 mys…

解决前端精度丢失问题:后端Long类型到前端的处理策略

在Web开发中&#xff0c;我们经常遇到前后端数据类型不匹配的问题&#xff0c;特别是当后端使用大数据类型如Long时&#xff0c;前端由于JavaScript的数字精度限制&#xff0c;可能导致精度丢失。本文将深入探讨这个问题&#xff0c;并提供两种有效的解决方法。 一、问题背景 …

matlab使用教程(36)—求解数值积分(1)

1计算弧线长度的积分 此示例说明了如何参数化曲线以及使用 integral 计算弧线长度。 将曲线视为带有参数的方程 创建此曲线的三维绘图。 t 0:0.1:3*pi; plot3(sin(2*t),cos(t),t) 弧线长度公式表明曲线的长度是参数化方程的导数范数的积分。 将被积函数定义为匿名函数。 f …

智慧园区革新之路:山海鲸可视化技术引领新变革

随着科技的飞速发展&#xff0c;智慧园区已成为城市现代化建设的重要组成部分。山海鲸可视化智慧园区解决方案&#xff0c;作为业界领先的数字化革新方案&#xff0c;正以其独特的技术优势和丰富的应用场景&#xff0c;引领着智慧园区建设的新潮流。 本文将带大家一起了解一下…

AI大模型下的策略模式与模板方法模式对比解析

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#xff1a;设计模式深度解析&#xff1a;AI大模型下…

无参数绕过RCE

一.什么是无参数 顾名思义&#xff0c;就是只使用函数&#xff0c;且函数不能带有参数&#xff0c;这里有种种限制&#xff1a;比如我们选择的函数必须能接受其括号内函数的返回值&#xff1b;使用的函数规定必须参数为空或者为一个参数等 无参数题目特征 if(; preg_replace…

基于 S2-LP 实现 802.15.4g 帧格式的数据透传

1. 引言 S2-LP 硬件上支持 802.15.4g 的帧格式&#xff0c;但是现有的 SDK 包并没有基于该帧格式的示例工程&#xff0c;因此本篇文章将介绍如何实现基于 802.15.4g 帧格式的数据透传。 2. 802.15.4g 帧格式 在开始之前&#xff0c;需要对 802.15.4g 帧格式有一个初步的了解…

springCloud-LoadBalancer负载均衡微服务负载均衡器LoadBalancer

2020年前SpringCloud是采用Ribbon作为负载均衡实现&#xff0c;但是在2020后采用了LoadBalancer替代 LoadBalancer默认提供了两种负载均衡策略&#xff08;只能通过配置类来修改负载均衡策略&#xff09; 1.RandomLoadBalancer-随机分配策略 2.RoundRobinLoadBalancer-轮询分配…

基于SSM的周边乡村旅游小程序

系统实现 游客注册通过注册窗口&#xff0c;进行在线填写自己的账号、密码、姓名、年龄、手机、邮箱等&#xff0c;信息编辑完成后核对信息无误后进行选择注册&#xff0c;系统核对游客所输入的账号信息是否准确&#xff0c;核对信息准确无误后系统进入到操作界面。 游客登录通…

[图像处理] MFC载入图片并绘制ROI矩形

上一篇&#xff1a; [图像处理] MFC载入图片并进行二值化处理和灰度处理及其效果显示 文章目录 前言完整代码重要代码效果 前言 上一篇实现了MFC通过Picture控件载入图片。 这一篇实现ROI功能的第一部分&#xff0c;在Picture控件中&#xff0c;通过鼠标拖拽画出一个矩形。 完…

实时计算平台设计方案:913-基于100G光口的DSP+FPGA实时计算平台

基于100G光口的DSPFPGA实时计算平台 一、产品概述 基于以太网接口的实时数据智能计算一直应用于互联网、网络安全、大数据交换的场景。以DSPFPGA的方案&#xff0c;体现了基于硬件计算的独特性能&#xff0c;区别于X86GPU的计算方案&#xff0c;保留了高带宽特性&…

产品推荐 | 星嵌基于TI TMS320C6657+Xilinx XC7Z035/045 DSP+FPGA+ARM工业核心板

1、产品概述 广州星嵌电子科技有限公司研发的C6657ZYNQ7035/45工业核心板&#xff0c;是基于TI KeyStone 架构C6000 系列TMS320C6657 双核C66x定点/浮点DSP 以及 Xilinx ZYNQ-7000 系列XC7Z035/045 SoC 处理器设计的。 DSP处理器采用TMS320C6657&#xff0c;双核C66x定点/浮点…

FIN和RST的区别,几种TCP连接出现RST的情况

一、RST跟FIN的区别&#xff1a; 正常关闭连接的时候发的包是FIN&#xff0c;但是如果是异常关闭连接&#xff0c;则发送RST包 两者的区别在于&#xff1a; 1.RST不必等缓冲区的包都发出去&#xff0c;直接就丢弃缓存区的包发送RST包。而FIN需要先处理完缓存区的包才能发送F…

【小白学机器学习11】假设检验之2:Z检验(U检验,正态检验)

目录 1 什么是Z检验 1.1 Z检验的别名 Z-test /U-test / 正态检验 1.2 维基百科定义 1.2 百度百科定义 1.3 定义提炼关键点 1.4 Z检验量 : Z(X-θ)/s (X-u)/s 2 Z检验量的构造 2.1 Z检验量 : Z(X_-u)/s 2.2 Z检验变量的构造 2.4 Z检验量的核心参数 2.4.1 原始公式 …

使用单点登录(SSO)如何提高安全性和用户体验

什么是单点登录&#xff08;SSO&#xff09; 对于所有大量采用云应用程序的组织来说&#xff0c;有效的身份管理是一个巨大的挑战&#xff0c;如果每个 SaaS 应用程序的用户身份都是独立管理的&#xff0c;则用户必须记住多个密码&#xff0c;技术支持技术人员在混合环境中管理…

【ELK】搭建elk日志平台(使用docker-compose),并接入springboot项目

1、环境搭建 前提条件&#xff1a;请自行安装docker以及docker-compose环境 version: 3 services:elasticsearch:image: elasticsearch:7.14.0container_name: elasticsearchports:- "9200:9200"- "9300:9300"environment:# 以单一节点模式启动discovery…

ASP.NET Core 模型绑定

&#x1f340;介绍 在C#中&#xff0c;特别是在ASP.NET Core中&#xff0c;模型绑定是一个将HTTP请求中的数据映射到C#对象的过程。它使得开发者能够方便地从请求中提取数据&#xff0c;而无需手动解析请求体、查询字符串、路由数据等。ASP.NET Core提供了多种特性&#xff08…

uniapp极光推送、java服务端集成

一、准备工作 1、进入【服务中心】-【开发者平台】 2、【创建应用】&#xff0c;填写应用名称和图标&#xff08;填写项目名称&#xff0c;项目logo就行&#xff0c;也可填写其他的&#xff09; 3、选择【消息推送】服务&#xff0c;点击下一步 ​ ​ Demo测试 参照文档&…

数据备份的演变:数字时代的一个关键方面

微信关注获取更多内容 数据备份至关重要&#xff0c;涵盖了其过去、现在和未来&#xff0c;是数字时代任何企业运营的一个重要方面。 如今&#xff0c;公司运营的几乎每个方面&#xff0c;从客户信息到内部财务数据&#xff0c;都以数字方式存储。 有鉴于此&#xff0c;数据…