美文网首页
【python☞2】List和Tuple类型 --学习笔记

【python☞2】List和Tuple类型 --学习笔记

作者: _王子_ | 来源:发表于2017-03-15 20:15 被阅读0次

    List

    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

    任务1:

    假设班里有3名同学:Adam,Lisa和Bart,他们的成绩分别是 95.5,85 和 59,请按照 名字, 分数, 名字, 分数... 的顺序按照分数从高到低用一个list表示,然后打印出来。

    代码如下:

    L = ['Adam',95.5,'Lisa',85,'Bart',59]

    print L


    任务2:

    三名同学的成绩可以用一个list表示:

    L = [95.5, 85, 59]

    请按照索引分别打印出第一名、第二名、第三名、第四名的分数(注意不要越界)。

    代码如下:

    L = [95.5,85,59]

    print L[0]

    print L[1]

    print L[2]

    print L[-1]


    任务3:

    三名同学的成绩可以用一个list表示:

    L = [95.5, 85, 59]

    请按照倒序索引分别打印出倒数第一、倒数第二、倒数第三(注意不要越界)。

    代码如下:

    L = ['',95.5, 85, 59]

    print L[-1]

    print L[-2]

    print L[-3]

    print L[-4]


    任务4:

    append()总是把新的元素添加到 list 的尾部

    L.insert(0, 'Paul')的意思是,'Paul'将被添加到索引为 0 的位置上(也就是第一个),而原来索引为 0 的Adam同学,以及后面的所有同学,都自动向后移动一位。

    假设新来一名学生Paul,Paul 同学的成绩比Bart好,但是比Lisa差,他应该排到第三名的位置,请用代码实现。

    代码如下:

    L = ['Adam', 'Lisa', 'Bart']

    L.insert(2,'Paul')

    print L


    任务5:

    pop()方法总是删掉list的最后一个元素,并且它还返回这个元素,所以我们执行 L.pop() 后,会打印出 'Paul'。如果是在list中间某一位置n,那就写pop(n-1)

    注意右边编辑器代码中 list 如下:

    L = ['Adam', 'Lisa', 'Paul', 'Bart']

    Paul的索引是2,Bart的索引是3,如果我们要把Paul和Bart都删掉,请解释下面的代码为什么不能正确运行:

    L.pop(2)

    L.pop(3)

    怎样调整代码可以把Paul和Bart都正确删除掉?

    代码如下:

    L = ['Adam', 'Lisa', 'Paul', 'Bart']  #必须从后面往前删除,如果从前面往后删除,后一位会自动补到前面,而后一位为空,再执行删除了,自然就报错了

    L.pop(3)

    L.pop(2)

    print L


    任务6:

    班里的同学按照分数排名是这样的:

    L = ['Adam', 'Lisa', 'Bart']

    但是,在一次考试后,Bart同学意外取得第一,而Adam同学考了倒数第一。

    请通过对list的索引赋值,生成新的排名。

    代码如下:

    L = ['Adam', 'Lisa', 'Bart']

    L[0] = 'Bart'

    L[2] = 'Adam'

    print L


    Tuple

    tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。

    创建tuple和创建list唯一不同之处是用( )替代了[ ]。

    现在,这个t就不能改变了,tuple没有 append()方法,也没有insert()和pop()方法。所以,新同学没法直接往 tuple 中添加,老同学想退出 tuple 也不行。

    任务1:

    创建一个tuple,顺序包含0 - 9这10个数。

    代码如下:

    t = (0,1,2,3,4,5,6,7,8,9)

    print t


    任务2:

    创建包含1个元素的 tuple 呢?来试试:

    >>> t = (1)

    >>> print t

    1

    好像哪里不对!t 不是 tuple ,而是整数1。为什么呢?

    因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果 (1) 被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。

    正是因为用()定义单元素的tuple有歧义,所以 Python 规定,单元素 tuple 要多加一个逗号“,”,这样就避免了歧义:

    >>> t = (1,)

    >>> print t

    (1,)

    请指出代码为什么没有创建出包含一个学生的 tuple:

    t = ('Adam')

    print t

    请修改代码,确保 t 是一个tuple。

    代码如下:

    t = ('Adam',)

    print t


    任务3:

    定义了tuple:

    t = ('a', 'b', ['A', 'B'])

    由于 t 包含一个list元素,导致tuple的内容是可变的。能否修改上述代码,让tuple内容不可变?

    代码如下:

    t = ('a', 'b', ('A', 'B'))

    print t


    相关文章

      网友评论

          本文标题:【python☞2】List和Tuple类型 --学习笔记

          本文链接:https://www.haomeiwen.com/subject/vwkrnttx.html