习题1.什么是[]? 答:bu包含任何值的列表 2.如何将’hello’赋给列表的第三个值,而列表保存在名为spam 的变量中?(假 定变量包含[2, 4, 6, 8, 10])。 答:spam[2]=‘hello’ 对接下来的3 个问题,假定spam 包含列表[‘a’, ‘b’, ‘c’, ‘d’]。 3.spam[int(‘3’ * 2) / 11]求值为多少? 答:‘d’ 4.spam[-1]求值为多少? 答:‘d’ 5.spam[:2]求值为多少? 答:[‘a’, ‘b’] 对接下来的3 个问题。假定bacon 包含列表[3.14, ‘cat’, 11, ‘cat’, True]。 6.bacon.index(‘cat’)求值为多少? 答:1 7.bacon.append(99)让bacon 中的列表值变成什么样? 答:[3.14, ‘cat’, 11, ‘cat’, True,99] 8.bacon.remove(‘cat’)让bacon 中的列表时变成什么样? 答;[3.14, 11,‘cat’, True] 9.列表连接和复制的操作符是什么? 答:列表连接:+,列表复制:* 10.append()和insert()列表方法之间的区别是什么? 答:append()方法将参数添加到列表末尾;insert()方法在列表任意下标处插入一个值。insert()方法的第一个参数是新值的下标,第二个参数是要插入的新值。 11.从列表中删除值有哪两种方法? 答:remove()移除已知的字符, del()移除知道位置不知字符的值 12.请说出列表值和字符串的几点相似之处。 答:列表和字符串都可以传入len(),都有下标和切片,用于for循环,连接或复制,并与in和not in操作符一起使用。 13.列表和元组之间的区别是什么? 答:列表是可变的,可以添加值、删除值和修改值,元组不可修改的;元组输入时用圆括号(),列表是用方括号[] 14.如果元组中只有一个整数值42,如何输入该元组? 答:spam=(42,),末尾的逗号是必须的,否则,Python 将认为,你只是在一个普通括号内输入了一个值 15.如何从列表值得到元组形式?如何从元组值得到列表形式? 答:list()和tuple()函数来转换类型 16.“包含”列表的变量,实际上并未真地直接包含列表。它们包含的是什么? 答:包含对列表值的引用 17.copy.copy()和copy.deepcopy()之间的区别是什么? 答:copy.copy()函数将浅拷贝列表,而copy.deepcopy()函数将深拷贝列表。也就是说,只有copy.deepcopy()会复制列表内的所有列表。 实践项目1.逗号代码 假定有下面这样的列表: spam = [‘apples’, ‘bananas’, ‘tofu’, ‘cats’] 编写一个函数,它以一个列表值作为参数,返回一个字符串。该字符串包含所 有表项,表项之间以逗号和空格分隔,并在最后一个表项之前插入and。例如,将 前面的spam 列表传递给函数,将返回’apples, bananas, tofu, and cats’。但你的函数应 该能够处理传递给它的任何列表。 答: def comma(test): string='' for index in range(len(test)): if index == len(test)-2: string+=test[index]+', and ' elif index < len(test)-2: string+=test[index]+',' else: string+=test[index] return stringspam=[]print('请输入字符(以end结束):')while True: s=input() if s=='end': break else: spam.append(s) - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
print(comma(spam)) 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 关键字参数。 答: def picture(test): for j in range(len(test[0])): for i in range(len(test)): print(test[i][j],end='') print() 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', '.', '.', '.'],['.', '.', '.', '.', '.', '.']]picture(grid)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
|