人工智能AI学习

2019-04-26第三节-元组tuple

2019-04-26  本文已影响0人  自律阳阳

元组tuple

    一个有序的元素组成的集合

    使用小括号()表示

    元组是不可变对象

元组的定义,初始化

定义

    tuple()->empty tuple

    tuple(iterable)->tuple initialized from iterable's items

    t =tuple() #工厂方法

    t = ()

    t = tuple(range(1,7,2))

    t = (2,4,6,3,4,2)

    t = (1,) #一个元素元组的定义

    t = (1,)*5

    t = (1,2,3)*6 #重复前面元组6次

元组元素的访问

    支持索引(下标)

    正索引:从左至右,从0开始,为列表每一个元素编号

    负索引:从右至左,从-1开始

    正负索引不可以超界,否则引起异常indexError

    元组通过索引访问

        tuple[index],index就是索引,使用中括号访问

        t[1]

        t[-2]

元组查询

    index(value,[start,stop])

        通过值value,从指定区间查找列表内的元素是否匹配

        匹配第一个立即返回索引

        匹配不到,抛出异常valueError

    count(value)

        返回列表中匹配value的次数

    时间复杂度

        index和count方法都是O(n)

        随着列表数据规模的增大,而效率下降

    len(tuple)

        返回元素的个数

元组其他操作

    元组是只读的,所以增、改、删无法操作

命名元组namedtuple

    帮助文档中,查阅namedtuple,有使用例程

    namedtuple(typename,field_names,verbose=False,rename=False)

        命名元组,返回一个元素的子类,并定义了字段

        field_names可以是空格或者逗号分隔的字段字符串,可以是字段的列表

from conllections import namedtuple

Point = namedtuple('P','x,y')

p1 = Point(11,22)

Student = namedtuple('Student','name age')

tom = Student('tom',20)

jerry = Student('jerry',19)

tom.name

练习:

    依次接收用户输入的3个数,排序后打印

        转换int后,判断大小排序

        使用max函数

        使用列表的sort方法

        冒泡法

1、if ...else

2.tuple

冒泡法:

    冒泡法需要数据一轮轮比较

     可以设定一个标记判断比较此轮是否有数据交换发生,如果没有发生交换,可以结束排序,如果发生变化,继续下一轮排序

    最差的排序情况是,初始顺序与目标顺序完全相反,遍历次数1,。。。。n-1之和n(n-1)/2

    最好的排序情况,初始顺序和目标顺序完全相同,遍历次数n-1

    时间复杂度O(N²)

上一篇下一篇

猜你喜欢

热点阅读