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

Posted bjx2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]
def list_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 in range(list_col):
        for j in range(list_len):
                print(grid[j][i],end=‘‘)
        print()

 





























以上是关于Python编程快速上手-让繁琐工作自动化 第四章 列表练习题及其答案的主要内容,如果未能解决你的问题,请参考以下文章

Python编程快速上手 让繁琐工作自动化 云图

Python编程快速上手 往让繁琐工作自动化-6.6 习题

Python编程快速上手-让繁琐工作自动化-第二章习题及其答案

Python编程快速上手 让繁琐工作自动化pdf

《Python编程快速上手 让繁琐工作自动化》pdf

分享《Python编程快速上手:让繁琐工作自动化》+PDF+源码+AI Sweigart+王海鹏