当前位置: 首页 > news >正文

数据结构【1】:数组专题

一、定义

数组是编程中一种强大的数据结构,它允许您存储和操作相同类型元素的集合。在 Python 中,数组是通过数组模块创建的,该模块提供了一个简单的接口来创建、操作和处理数组。

二、创建数组

在 Python 中,可以使用内置的 array 模块或第三方的 NumPy 库来创建和处理数组。

  1. array 模块提供了一种创建和处理数组的简单方式,可以创建固定长度的数组,并指定数据类型
  2. 在 array 模块中,可以选择不同的数据类型代码来表示不同的数据类型,
  • ‘i’ – 表示有符号整数;
  • ‘f’ – 表示浮点数;
  • ‘d’ – 表示双精度浮点数;
  • ‘u’ – 表示无符号整数等。
import array# 创建数组,指定数据类型为整数
# 在创建数组时,需要指定数据类型,数据类型指定为 'i',表示整数类型
a = array.array('i', [1, 2, 3, 4, 5])# 访问数组元素
print(a[0])# 遍历数组
for i in a:print(i)# 修改数组元素
a[0] = 10# 输出数组元素
print(a)
  1. 使用Numpy库创建数组
    NumPy 库提供了更多高级的数组操作和算法,可以创建多维数组,并提供了向量化运算等功能,是科学计算和数据分析领域经常使用的工具。
import numpy as np# 创建 1 维数组
a = np.array([1, 2, 3])# 打印数组和数据类型
print(a)
print(a.dtype)# 创建 2 维数组
b = np.array([[1, 2, 3], [4, 5, 6]])# 打印数组
print(b)# 创建全 0 或全 1 的数组
c = np.zeros((2, 3))  # 2x3 的全 0 数组
d = np.ones((2, 3))   # 2x3 的全 1 数组# 打印数组
print(c)
print(d)

三、访问数组元素

创建数组后,我们可以使用数组索引访问数组元素。数组索引从0开始,因此数组中第一个元素的索引为0,第二个元素的索引为1,以此类推。

import array as arr# 创建一个整数数组
my_array = arr.array('i', [1, 2, 3, 4, 5])# 访问数组的第一个元素
print(my_array[0])
# 输出: 1# 访问数组的第二个元素
print(my_array[1])
# 输出: 2# 访问数组的最后一个元素
print(my_array[-1])
# 输出: 5

四、数组切片

我们还可以使用切分法访问数组中的一系列元素。分片允许我们创建一个新数组,其中包含原始数组中元素的子集。

import array as arr# 创建一个整数数组
my_array = arr.array('i', [1, 2, 3, 4, 5])# 对数组进行切分,得到前三个元素
print(my_array[0:3])
# 输出: array('i', [1, 2, 3])# 对数组进行切分,得到最后三个元素
print(my_array[-3:])
# 输出: array('i', [3, 4, 5])

五、数组操作

Python 中的数组是可变的,这意味着我们可以在数组创建后修改其元素。我们可以添加或删除元素,改变元素的值,甚至改变数组中元素的类型。

1、添加元素

要向数组中添加元素,我们可以使用append()方法。该方法将元素添加到数组的末尾。【添加的必须是同一类型的元素

import array as arr# 创建一个整数数组
my_array = arr.array('i', [1, 2, 3, 4, 5])# 为数组添加新元素# 使用 append() 方法在数组末尾添加一个元素。
my_array.append(6)
print(my_array)
# 输出: array('i', [1, 2, 3, 4, 5, 6])# 使用 insert() 方法在指定索引位置插入一个元素
my_array.insert(2, 10)
print(my_array)
# 输出:array('i', [4, 5, 10])# 使用 extend() 方法将一个列表添加到数组末尾

2、删除元素

要从数组中删除一个元素,我们可以使用remove()方法。该方法从数组中删除第一个出现的指定元素。

import array as arr# 创建一个整数数组
my_array = arr.array('i', [1, 2, 3, 4, 5])# 从数组中删除一个元素# 使用 remove() 方法删除第一个匹配的元素
my_array.remove(3)
print(my_array)
# 输出: array('i', [1, 2, 4, 5])# 使用 pop() 方法删除指定索引位置的元素,并返回该元素
my_array.pop(0)
print(my_array)
# 输出:array('i', [2, 4, 5])# 使用 del 关键字删除指定索引位置或切片范围内的元素
del my_array[0]
print(my_array)
# 输出:array('i', [4, 5])

3、改变元素

要改变数组中一个元素的值,我们可以简单地为指定索引处的元素赋一个新值。和数组元素类型是同一类型

import array as arr# 创建一个整数数组
my_array = arr.array('i', [1, 2, 3, 4, 5])# 改变数组中一个元素的值
my_array[0] = 10# 打印更新后的数组
print(my_array)
# 输出: array('i', [10, 2, 3, 4, 5])

参考一,参考二

http://www.lryc.cn/news/262864.html

相关文章:

  • 【Spring】Spring 事务
  • Ubuntu 虚拟机环境,编译AOSP源码
  • 2023.12.18杂记
  • 智能优化算法应用:基于阿基米德优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • K8s内容器拓扑图工具
  • 掌握 Babel:让你的 JavaScript 与时俱进(上)
  • Mysql进阶-InnoDB引擎事务原理及MVCC
  • 「X」Embedding in NLP|神经网络和语言模型 Embedding 向量入门
  • JVM-11-运行时栈帧结构
  • 【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值
  • 【大麦小米学量化】使用xtquant调用迅投MiniQMT客户端定时操作逆回购,再也不担心忘了赚零花钱了(含完整源代码)
  • php hyperf 读取redis,存储到数据库
  • 云原生之深入解析K8S 1.27新特性如何简化状态服务跨集群平滑迁移
  • 鸿蒙OS:打破界限的操作系统新星
  • 预测性维护在汽车制造行业中的应用
  • 分布式链路追踪 —— 基于Dubbo的traceId追踪传递
  • 【uniapp小程序-上拉加载】
  • ubuntu添加路由
  • python图像二值化处理
  • 4.配置系统时钟思路及方法
  • 使用openMVS库,在VS2022中启用c++17标准编译仍然报错
  • uniGUI之上传文件UniFileUploadButton
  • 福德植保无人机工厂:创新科技与绿色农业的完美结合
  • JsRpc技术服务搭建,最简单的JSRPC,Flask+undetected-chromedriver
  • <优化接口设计的思路>:接口安全
  • Gitee基础知识
  • 网络空间搜索引擎- FOFA的使用技巧总结
  • 用户行为分析遇到的问题-ubantu16,hadoop3.1.3
  • camera曝光时间
  • Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码