Python中的数据结构( 二 )


  • append(),在列表末尾添加一个元素
  • insert(),在指定的特定位置将元素添加到列表

Python中的数据结构

文章插图
 
从列表中删除元素从列表中删除元素与添加元素一样简单,可以使用remove()或pop()方法完成:
  • remove()–从列表中删除与给定值匹配的第一个匹配项
  • pop()–当我们要从列表中移除指定索引处的元素时使用 。但是,如果我们不提供索引值,最后一个元素将从列表中删除

Python中的数据结构

文章插图
 
排序列表大多数情况下,你将使用列表对元素进行排序 。因此了解sort()方法非常重要 。它允许你按升序或降序对列表元素进行就地排序:
Python中的数据结构

文章插图
 
但是当你想要对包含字符串元素的列表进行排序时,事情就变得有点棘手了 。你如何比较两个字符串?好吧,字符串值是使用字符串中字符的ASCII值排序的 。字符串中的每个字符都有一个与其关联的整数值 。我们使用这些值对字符串进行排序 。
在比较两个字符串时,我们只是从一开始比较每个字符的整数值 。如果在两个字符串中遇到相同的字符,我们只需比较下一个字符,直到找到两个不同的字符 。当然,这是内部完成的,所以你不必担心!
Python中的数据结构

文章插图
 
合并列表我们甚至可以通过简单地使用+符号连接两个或多个列表 。这将返回一个新列表,其中包含两个列表中的元素:
Python中的数据结构

文章插图
 
列表解析列表的一个非常有趣的应用是列表解析,它提供了一种创建新列表的简洁方法 。这些新列表是通过对现有列表的每个元素应用操作创建的 。如果我们首先检查一下如何使用旧的for循环来完成它:
Python中的数据结构

文章插图
 
现在,我们将看到如何使用列表理解简洁地执行此操作:
Python中的数据结构

文章插图
 
看到区别了吗?列表解析对于任何数据科学家来说都是一项有用的语法,因为你可以看到和编写简明易读的代码!
堆栈和队列列表是Python中内置的数据结构 。但我们可以使用它来创建用户定义的数据结构 。使用列表构建的两种非常流行的用户定义数据结构是栈和队列 。
栈是一个元素列表,其中元素的添加或删除是从列表的末尾开始的 。把它想象成一堆书 。当你需要从书堆中添加或删除一本书时,你可以从顶部开始 。它使用了后进先出的简单概念 。
Python中的数据结构

文章插图
 
另一方面,队列是一个元素列表,其中元素的添加发生在列表的末尾,而元素的删除则发生在列表的前面 。你可以把它想象成现实世界中的一个队列 。当前面的人离开队列时,队列变短 。当有新成员从末尾添加到队列中时,队列将变长 。它使用先进先出的概念 。
Python中的数据结构

文章插图
 
现在,作为一个数据科学家或分析师,你可能不是每天都在使用这个概念,但是当你必须构建自己的算法时,它肯定会帮助你!
数据结构2:Python中的元组元组是Python中另一种非常流行的内置数据结构 。它们与列表非常相似,只不过有一个区别,它们是不可变的 。这意味着一旦生成元组,就不能添加、删除或编辑任何值 。
我们将进一步探讨这个问题,但首先让我们看看如何在Python中创建元组!
在Python中创建元组元组可以通过在(括号)内写入值来生成,每个元素用逗号分隔 。但是,即使你写了一堆没有任何括号的值并把它们赋给一个变量,你最终还是会得到一个元组!
Python中的数据结构

文章插图
 
好了,现在我们知道了如何创建元组,让我们讨论一下不变性 。
元组的不变性在Python中,任何在创建后不能修改的内容都是不可变的 。Python语言可以分解为可变和不可变的对象 。
列表、字典、集合(我们将在后面的章节中探讨这些)是可变对象,这意味着它们可以在创建后修改 。另一方面,整数、浮点数、布尔值、字符串甚至元组都是不可变的对象 。但是,是什么使它们不可改变呢?


推荐阅读