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

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类型 --学习笔记)