python快速上手 自动化15.12.2答案,Python编程快速上手-让繁琐工作自动化 第四章 列表练习题及其答案...

第四章 列表练习题及其答案

1、什么是[]?

答:空的列表值,它是一个列表,不包含任何列表项。这类似于‘‘是空的字符串值。

2、如何将‘hello‘赋值给列表的第三个值,而列表保存在名为spam的变量中?(假设变量包含[2, 4, 6, 8, 10])

答:spam[2] = ‘hello‘(注意列表中的第3个值下标是2,因为第一个值下标是0。)

对接下来的3个问题,假定spam包含列表[‘a‘, ‘b‘, ‘c‘, ‘d‘]

3、spam[int(‘3‘*2)/11]求值为多少?

答:‘d‘(注意‘3‘*2是字符串‘33‘,它被传入int(),然后再除以11。这最终求值为3.在使用值的地方,都可以使用表达式)。>>> spam=[‘a‘, ‘b‘, ‘c‘, ‘d‘]>>> spam[int(‘3‘*2)//11]‘d‘

4、spam[-1]求值为多少?

答:‘d‘(负数下标从末尾倒数)。

5、spam[:2]求值为多少?

答:>>>spam

[‘a‘, ‘b‘, ‘c‘, ‘d‘]>>> spam[:2]

[‘a‘, ‘b‘]

对接下来的3个问题。假定bacon包含列表[3.14,‘cat‘, 11, ‘cat‘, True]

6、bacon.index(‘cat‘)求值为多少?

答:>>> bacon = [3.14, ‘cat‘, 11, ‘cat‘, True]>>> bacon.index(‘cat‘)1

>>>

7、bacon.append(99)让bacon中的列表值变成什么样?

>>> bacon = [3.14, ‘cat‘, 11, ‘cat‘, True]>>> bacon.append(99)>>>bacon

[3.14, ‘cat‘, 11, ‘cat‘, True, 99]>>>

8、bacon.remove(‘cat‘)让bacon中的列表值变成什么样?

答:>>>bacon

[3.14, ‘cat‘, 11, ‘cat‘, True, 99]>>> bacon.remove(‘cat‘)>>>bacon

[3.14, 11, ‘cat‘, True, 99]>>>

9、列表连接和复制的操作符是什么?

答:列表连接的操作符是+,复制的操作符是*(这和字符串一样)。

10、append()和insert()列表方法之间的区别是什么?

答:append()只会将值添加在列表的末尾,而insert()可以将值添加在列表的任何位置。

11、从列表中删除值有哪两种方法?

答:del语句和remove()列表方法是从列表中删除值得两种方法。

12、请说出列表值和字符串的几点相似之处。

答:列表和字符串都可以传入len(),都有下标和切片,用于for循环,连接或复制,并与in和not in操作符一起使用。

13、列表和元组之间的区别是什么?

答:列表是可以修改的,它们可以添加值、删除值和修改值。元组是不可修改的,它们根本不能改变。而且,元组使用的是括号,而列表使用的是方括号[]。

14、如果元组中只有一个整数值42,如何输入该元组?

答:spam=(42,)  末尾的逗号是必须的。

15、如何从列表值得到元组形式?如何从元组值得到列表形式?

答:分别使用tuple()和list()函数。

16、"包含"列表的变量,实际上并未真正地直接包含列表。它们包含的是什么?

答:它们包含对列表值得引用。

17、copy.copy()和copy.deepcopy()之间的区别是什么?

答:copy.copy()函数将浅拷贝列表,而copy.deepcopy()函数将深拷贝列表。也就是说,只有copy.deepcopy()会复制列表内的所有列表。

4.10 实践项目

作为实践,编程完成下列任务。

4.10.1 逗号代码

假定有下面这样的列表:

spam = [‘apples‘, ‘bananans‘, ‘tofu‘, ‘cats‘]

编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所有表项,表项之间以逗号和空格分隔,

并在最后一个表项之前插入and。例如,将前面的spam列表传递给函数,将返回‘apples, bananas, tofu, and cats‘。

但你的函数应该能够处理传递给它的任何列表。

"""4.10 实践项目

作为实践,编程完成下列任务。

4.10.1 逗号代码

假定有下面这样的列表:

spam = [‘apples‘, ‘bananans‘, ‘tofu‘, ‘cats‘]

编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所有表项,表项之间以逗号和空格分隔,

并在最后一个表项之前插入and。例如,将前面的spam列表传递给函数,将返回‘apples, bananas, tofu, and cats‘。"""spam= [‘apples‘, ‘bananans‘, ‘tofu‘, ‘cats‘]deflist_str(lst):return ‘,‘.join(lst[:-1]+[‘and‘+lst[-1]])

a=list_str(spam)print(a)

4.10.2 字符图网络

假定有一个列表的列表,内层列表的每个值都是包含一个字符的字符串,像这样:

grid = [[‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘, ‘.‘],

[‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘]]

你可以认为grid[x][y]是一副"图"在x,y坐标处的字符,该图由文本字符组成。原点(0,0)在左上角,向右x坐标增加,

向下y坐标增加。

复制前面的网格值,编写代码用它打印出图像。

..OO.OO..

.OOOOOOO.

.OOOOOOO.

..OOOOO..

...OOO...

....O....

提示:    你需要使用循环嵌套循环,打印出grid[0][0],然后grid[1][0],然后grid[2][0],以此类推,

直到grid[8][0]。这就完成第一行,所以接下来打印换行。然后程序将打印出grid[0][1], 然后grid[1][1],然后grid[2][1],

以此类推。程序最后打印出grid[8][5]。

而且,如果你不希望在每次print()调用后都自动打印换行,记得向print()传递end关键字参数。

#!/usr/bin/env python3#-*- coding:utf-8 -*-#Author: davie

"""4.10.2 字符图网络

假定有一个列表的列表,内层列表的每个值都是包含一个字符的字符串,像这样:

grid = [[‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘, ‘.‘],

[‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘]]

你可以认为grid[x][y]是一副"图"在x,y坐标处的字符,该图由文本字符组成。原点(0,0)在左上角,向右x坐标增加,

向下y坐标增加。

复制前面的网格值,编写代码用它打印出图像。

..OO.OO..

.OOOOOOO.

.OOOOOOO.

..OOOOO..

...OOO...

....O....

提示: 你需要使用循环嵌套循环,打印出grid[0][0],然后grid[1][0],然后grid[2][0],以此类推,

直到grid[8][0]。这就完成第一行,所以接下来打印换行。然后程序将打印出grid[0][1], 然后grid[1][1],然后grid[2][1],

以此类推。程序最后打印出grid[8][5]。

而且,如果你不希望在每次print()调用后都自动打印换行,记得向print()传递end关键字参数。"""grid= [[‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘],

[‘O‘, ‘O‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘],

[‘.‘, ‘O‘, ‘O‘, ‘.‘, ‘.‘, ‘.‘],

[‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘, ‘.‘]]

list_len=len(grid)

list_col=len(grid[0])for i inrange(list_col):for j inrange(list_len):print(grid[j][i],end=‘‘)print()

你可能感兴趣的:(python快速上手,自动化15.12.2答案)