python元组常用的五种方法,在python中元组的值是不可变的

  python元组常用的五种方法,在python中元组的值是不可变的

  1.简介tuple是Python中一种重要的内置数据类型。和列表一样,我们经常使用元组将多个对象保存为相应的数据容器。然而,与列表不同,元组——的不变性是不可变的数据序列。

  2.举个栗子的例子。下面的代码片段向我们展示了元组的一些常见用法。

  响应=(404,“无法访问网站”)

  响应代码=响应[0]

  response_data=response[1]

  断言响应代码==404

  Assert response _ data==无法访问网站上面的代码片段对我们来说非常简单。我们使用一对括号创建一个tuple对象来包含不同的元素。我们可以通过索引访问元组中的单个元素。除了上面提到的元组的基本用法,元组还有其他鲜为人知的用法。让我们在这篇文章中回顾一下。

  3.创建包含单个元素的元组。在上面的代码示例中,我们使用一对括号来创建一个tuple对象。通常,一个tuple对象包含两个或多个元素,我们使用逗号来分隔这些元素。如果我们想创建一个只包含一个元素的元组,应该怎么做?让我们试试:

  math_score=(95)

  math_score[0]

  回溯(最近一次呼叫):

  模块中文件 stdin 的第1行

  type error:“int”对象不可订阅

  类型(数学分数)

  正如我们所看到的,class int (95)并不像我们有些人所想的那样创建元组对象。相反,它创建一个整数。您可能已经想到,正确的方法是在元素后添加一个逗号:

  math_score=(95,)

  math_score[0]

  95

  类型(数学分数)

  类“元组”4。用下划线和*解包元组。虽然我们可以通过索引访问元组的每个元素,但更常见的接收方式是使用解包技术,例如:

  响应=(404,“无法访问网站”)

  Response _ code,response _ data=response对于unpack技术,我们定义了很多变量,变量的数量与元组的长度相匹配。也就是说,元组的每个元素被分配给相应的变量。如果我们不需要使用所有创建的变量,建议使用下划线来表示这些未使用的变量。例如,对于上面的例子,我们可能只使用变量response_data而不是response_data。这时,我们可以做以下事情:

  _,response_data=response这样,我们会告诉代码的读者,此时我们只对访问tuple对象的第二个元素感兴趣。

  当一个tuple对象中有多个元素时,如果我们希望能够访问多个连续的元素,那么我们可以使用星号表达式:

  分数=(98,95,95,92,91)

  代数,*其他,动物学=分数

  Assert others==[95,95,92]如上图,我们有一个tuple对象,按字母顺序保存各门课程的分数。我们知道第一门课是代数,最后一门是动物学。在上面的例子中,我们用星号解包得到了中间的三个分数。

  5.使用命名元组,我们可以使用索引或解包操作来访问元组的各种元素,以将这些元素分配给各个变量。有时候,这可能是丑陋的。请参见以下示例:

  位置1=(27.2,7.5)

  位置2=(30.1,8.4)

  位置3=(29.9,7.7)

  纬度1=位置1[0]

  经度2=位置2[1]

  Latitude3,longitude3=location3在上面的代码中,我们有三个位置变量,分别显示了它们各自的位置坐标。当我们访问这些坐标的单个元素时,代码看起来不那么简洁。

  虽然我们可以使用自定义类来实现坐标的数据类型,但是对于这种简单的数据类型,自定义类可能会显得臃肿。相反,我们可以使用命名元组作为轻量级数据类型,如下所示:

  从集合导入命名元组

  Location=namedtuple(Location ,

  [纬度,经度])

  位置1=位置(27.2,7.5)

  位置2=位置(30.1,8.4)

  位置3=位置(29.9,7.7)

  纬度1=位置1 .纬度

  经度2=位置2 .经度

  位置。纬度,位置3。经度如上图所示,我们调用namedtuple通过指定类名及其属性来创建一个命名元组类。现在,我们可以通过调用类的构造函数来创建命名元组类的实例。对于这些实例,我们可以使用点符号来访问它们的属性,这是常规元组对象无法使用的特性。

  6.在本文中,我们回顾了Python中元组的三个特征。使用这些特性可以大大提高代码的可读性和可理解性。希望你能把它们运用到日常工作中。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: