元组


01.tuple是一个不可变的,有序的,可重复的元素的集合。

  • 元组的基本概念:
    • 元组是一个排列整齐的队列。
    • 元组中的元素可以是任意数据类型(数值,字符串,对象,列表等)。
    • 元组中的元素有顺序,可以使用索引。
    • 元组属于线性的数据结构。
    • 元组是一个可迭代的对象。
    • 元组不允许对元素的赋值操作,即一旦生成,则不允许改变。
  • 元组的定义方法:
    • 使用小括号定义,比如:new_tuple = (“wenjun”, “shengjianzhou “)。
      • 使用空的小括号会定义一个空的元组。
      • 如果元组中只有一个元素,则使用new_tuple=(value,)的方式定义(逗号)。
    • 使用tuple()函数定义,比如:new_tuple = tuple(range(10))。
      • tuple()函数仅可接受一个参数,该参数为一个可迭代对象。
      • tuple()函数可定义一个空元组。
  • 元组的索引访问:
    • 元组的元素的顺序称为索引,也叫下标;索引分为正负索引:
      • 正索引,从左至右,从0开始,为元组中每一个元素编号。
      • 负索引,从右至左,从-1开始,为元组中每一个元素编号。
      • 正负索引不可以超界,否则引发异常(IndexError)。
    • 元组可以通过索引访问,其格式为:tuple[index]。


02.元组的内置方法:

  • 查询元素:
    • tuple[index],通过索引返回元组中的元素。
    • index(value, [start, [stop]]),通过value,从指定区间查找元组内的元素是否匹配,比如:
      my_tuple = (1, 2, 3, 4, 5)
      result = my_tuple.index(3, 0, -1)
      print(result)
      • 如果匹配(第一次),则立即返回索引;如果不匹配,则抛出ValueError异常。
      • index()的时间复杂度为O(n),查询时间随着列表增大而增加。
    • count(value),返回元组中匹配到value的次数。
      • count()的时间复杂度为O(n),查询时间随着元组增大而增加。
    • len(tuple),返回元组的长度。


命名元组


01.namedtuple可以构造一个含有字段名称的元组类。

  • 命名元组的定义格式为:
namedtuple(typename, field_names, verbose=False, rename=False)
  • typename,类名称。
  • field_names,元组中的元素名称。
    • field_names可以是字符串,也可以是列表;如果是字符串,则以空格或逗号分隔。
  • 命名元组的示例:
from collections import namedtuple

Point = namedtuple('info', ['name', 'age', 'job'])
my_tuple = Point('wenjun', '35', 'IT')
print(my_tuple)
print(my_tuple.name)
文档更新时间: 2020-04-06 17:16   作者:闻骏