数组和列表在python中的工作方式

数组和列表是编程中最有用的数据结构之一——尽管很少有人充分利用它们。...

数组和列表是编程中最有用的数据结构——尽管很少有人真正地利用它们来发挥他们的全部潜能。今天我将通过基本知识和一些简单的Python示例来讨论您。

python-arrays-lists

先决条件

为了学习这些概念,你不需要提前了解很多。对编程范例和Python的基本知识将很有帮助,但这是不需要的。如果您不知道从哪里开始,请阅读我们的基本Python示例。如果您认为Python是一种无用的语言,请查看我们为什么不使用Python的原因。

虽然以下基本思想可以应用于任何语言,但我将用Python演示这些示例。这是一门很容易学习的语言,为理解正在发生的事情提供了一个极好的平台。除此之外,教程点.com提供了一个优秀的在线Python解释器——如果不想安装Python,甚至不必安装Python(如果需要,请参阅我们的虚拟环境指南)。

数据结构

什么是数据结构?在最基本的层面上,数据结构是有效存储数据的一种方式。很容易混淆,因为数据结构不是数据类型。数据类型告诉编译器(或者在Python的情况下告诉解释器)如何使用数据。数据结构指定可以执行的操作,并且通常实现特定的规则和规定。

您可能听说过一些线性数据类型(元素是连续的):

  • 数组
  • 矩阵
  • 查阅表格

类似地,列表通常包含规则和方法来规范它们的操作方式。一些常见列表包括:

  • 链表
  • 双链表
  • 数组列表或动态数组

有大量不同的数据结构。您可能听说过二叉树、图或哈希。今天我将讨论基础知识,但您可能希望在感到舒适后再学习更多。

数组

让我们从头开始。数组是(相关)值的简单集合。这些值称为元素。它们通常可以是您喜欢的任何数据类型,包括对象或其他列表!数组的主要警告是,所有数据必须相同——不能存储混合字符串和整数。几乎总是需要指定要存储多少元素。可变大小或动态数组确实存在,但固定长度数组更容易开始。

Python使事情变得有些复杂。它使事情变得非常简单,但并不总是严格遵守数据结构的定义。Python中的大多数对象通常是列表,因此创建数组实际上需要更多的工作。以下是一些启动代码:

from array import arraynumbers = array('i', [2, 4, 6, 8])print numbers[0]

第一行导入数组模块——这是处理数组所必需的。第二行创建一个名为numbers的新数组,并用值2、4、6和8对其进行初始化。每个元素都分配了一个称为键或索引的整数值。键从零开始,因此数字[0]将访问第一个元素(2):

Python Arrays

你可能在想“我”是用来做什么的。这是一个类型代码,它告诉Python数组将存储整数。通常Python中不需要这种事情(它将被认为是“不同步的”)。原因很简单。Python中的数组是操作系统底层C数组上非常薄的包装器。这意味着它们是快速和稳定的,但它们可能并不总是坚持Python语法。

不能在这些数组中存储混合类型。“说你想存储字符串”makeuseof.com":

numbers = array('i', [2, 4, 6, "makeuseof.com"])

这将不允许,并将引发异常:

Python Arrays

以下是如何打印所有元素:

print numbers

Python Arrays

这种访问数组元素的方法工作良好,适合于正确的任务。它不好的是访问整个数组。程序员天生懒惰,所以我会很乐意编写更多更好的代码,如果这意味着我可以使维护更容易,并减少复制粘贴的工作量。

每个编程语言都将实现某种循环,这是在列表元素上迭代(循环)的完美方法。最常见的循环是while和for。Python通过提供for-in循环,使事情更加容易:

for number in numbers: print number

请注意,您不必通过元素的键来访问它们。这是一种更好的处理数组的方法。迭代列表的另一种方法是使用for循环:

for i in range(len(numbers)): print numbers[i]

尽管必须指定数组中元素的数量(len(cars)),同时传递i作为数组的键,但这与前面的示例完全相同。这几乎就是for in循环运行的代码。这种方式提供了更大的灵活性,而且速度也更快(尽管for-in-loops在大多数情况下都足够快)

列表

既然您知道了数组是如何工作的,那么让我们看一个列表。它有时会令人困惑,因为人们可以互换地使用不同的术语,而且列表是数组。。。有点。

列表是一种特殊类型的数组。最大的区别是列表可以包含混合类型(记住,数组必须包含相同类型的元素)。列表在Python中非常简单:

cars = ['Ford', 'Austin', 'Lancia']

注意你不需要导入数组模块吗?

这个语法声明了一个名为cars的列表。在方括号内,声明列表的每个元素。每个元素用逗号分隔,由于每个元素都是一个字符串,所以可以在引号中声明它们。Python知道这是一个对象,因此print语句将输出列表的内容:

print cars

Python Arrays

与数组一样,可以使用循环迭代列表元素:

for car in cars: print car

Python Arrays

真正的政党把戏名单是他们的混合类型。继续添加一些额外的数据:

cars = ['Ford', 'Austin', 'Lancia', 1, 0.56]

这对Python来说不是问题——它甚至没有引发异常:

Python Arrays

向列表中添加新元素很容易(使用数组是不可能的):

cars = ['Ford', 'Austin']print carscars.append('Lancia')print cars

Python Arrays

也可以将两个列表合并为一个:

cars = ['Ford', 'Austin']print carsother_cars = ['Lotus', 'Lancia']cars.extend(other_cars)print cars

Python Arrays

使用remove语法删除元素同样容易:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']print carscars.remove('Ford')print cars

Python Arrays

这将介绍Python中列表和数组的基础知识。为什么不考虑一个编码项目,比如读写googlesheets,读取json数据。也许你可以利用你的新技能**一些自定义的快捷键。尽管是一种不同的编程语言,这些数组原则仍然适用。

你学到什么新东西了吗?你想看看更复杂的内容吗?请在下面的评论中告诉我们您的想法!

  • 发表于 2021-03-15 17:19
  • 阅读 ( 233 )
  • 分类:编程

你可能感兴趣的文章

追加(append)和在python中扩展(extend in python)的区别

...元素都用方括号括起来。在C、Java等编程语言中,必须在数组中存储相同的数据类型。但在Python列表中,并不需要所有元素都是相同的数据类型。Python语言提供了几个与列表相关联的内置函数。程序员可以在程序中使用它们。其...

  • 发布于 2020-10-19 10:35
  • 阅读 ( 231 )

perl公司(perl)和python(python)的区别

...。标量变量以$开头。它可以存储字符串、整数或引用。数组变量以@开头。它用于存储标量的有序列表。散列变量以%开头。它用于存储键、值对。 Perl与web相关的技术如超文本标记语言(HTML)、XML等一起使用非常容易,Perl也可...

  • 发布于 2020-10-19 17:38
  • 阅读 ( 219 )

红宝石(ruby)和python(python)的区别

...。闭包具有从外部作用域读取和写入变量的权限。Ruby有数组、哈希等数据类型。 rubyonrails是一个用Ruby编写的用于web开发的web框架。它很容易嵌入到超文本标记语言(HTML)中。Ruby还可以用于构建同时运行多个线程的多线程应用...

  • 发布于 2020-10-19 17:41
  • 阅读 ( 342 )

r(r)和python(python)的区别

...符和复数。R有不同的数据结构,如向量、列表、矩阵、数组、因子和数据帧。一个向量可以用来存储多个元素。一个列表可以包含许多不同数据类型的元素,如向量或另一个列表。矩阵可以用来存储二维数据集。数组用于存储...

  • 发布于 2020-10-20 09:33
  • 阅读 ( 229 )

列表(list)和元组(tuple)的区别

... 6. 摘要 什么是列表(list)? 在诸如C或C++的编程语言中,数组被用来保存相同数据类型的元素。但在Python列表中,所有元素不必同时存在。列表中的每一项都用逗号隔开。所有元素都包含在方括号内。列表的一个例子是list1=[1,“...

  • 发布于 2020-10-24 03:25
  • 阅读 ( 293 )

如何在python中使用列表理解

...ython将每个键乘以2。最后,它将该操作的结果显示为结果数组中每个键的对应值。 ...

  • 发布于 2021-03-11 10:55
  • 阅读 ( 582 )

json-python解析:简单指南

... 下面是如何表示对象数组。在这种表示法中,数组的每一项都是一个对象。以下是棒球运动员的工资样本。 ...

  • 发布于 2021-03-13 11:20
  • 阅读 ( 289 )

python字典:如何使用它编写更好的代码

python字典是一种数据结构,类似于其他编程语言中的关联数组。数组或列表按位置索引元素。另一方面,字典通过可以是字符串的键来索引元素。可以将字典视为无序的键值对集。 ...

  • 发布于 2021-03-14 05:15
  • 阅读 ( 266 )

程序员指针简介

...示指针是如何工作的,因此您可能希望在编程入门中了解数组和列表是如何工作的。这篇文章将比通常更以理论为基础,但坚持下去,指针是非常复杂的! ...

  • 发布于 2021-03-15 04:42
  • 阅读 ( 181 )

如何让python和javascript使用json进行通信

...一名开发人员,您可能还想通过掌握JavaScript箭头函数和数组方法以及探索其他函数式编程语言来提升自己的技能。 ...

  • 发布于 2021-03-16 01:22
  • 阅读 ( 300 )