标签:应该 xtend append argument err 下列表 操作 情况 实现
目录:
一、创建列表
二、向列表添加元素
三、课时10课后习题及答案
***************
一、创建列表
***************
创建列表跟创建普通变量一样,用中括号括起一堆数据就可以了,数据之间用逗号隔开。
>>> number = [1,2,3,4,5] >>> number [1, 2, 3, 4, 5] >>> len(number) 5
可以创建一个鱼龙混杂的列表:
>>> mix = [1,"小甲鱼",3.14,[1,2,3]] >>> mix [1, ‘小甲鱼‘, 3.14, [1, 2, 3]]
可以创建一个空列表:
>>> empty = [] >>> empty []
***********************
二、向列表添加元素
***********************
append() extend() insert()
要向列表中添加元素,可以使用append()方法:(注:append()不是一个BIF,它属于列表对象的一个方法)
>>> number = [1,2,3,4,5] >>> number.append(6) >>> number [1, 2, 3, 4, 5, 6]
我们把数字7和8添加进去,但是发现并不能用append()同时添加多个元素:这时候我们可以使用extend()方法向列表末尾添加多个元素:
>>> number.append(7,8) Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> number.append(7,8) TypeError: append() takes exactly one argument (2 given) >>> number.extend(7,8) Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> number.extend(7,8) TypeError: extend() takes exactly one argument (2 given)
怎么都报错了呢?!extend()方法事实上使用一个列表来扩展另一个列表,所以它的参数应该是一个列表:
>>> number.extend([7,8]) >>> number [1, 2, 3, 4, 5, 6, 7, 8]
如果想要往列表的任意位置插入元素,就要使用insert()方法。insert()方法有两个参数:第一个参数代表在列表中的位置,第二个参数是在这个位置处插入一个元素。不妨来试一下,让数字0出现在列表number的最前边:(注:列表的第一位索引值是0)
>>> number.insert(0,0) >>> number [0, 1, 2, 3, 4, 5, 6, 7, 8]
*******************************
三、课时10课后习题及答案
*******************************
测试题:
0. 列表都可以存放一些什么东西?
1. 向列表增加元素有哪些方法?
2. append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?
3. member.append([‘竹林小溪‘, ‘Crazy迷恋‘]) 和 member.extend([‘竹林小溪‘, ‘Crazy迷恋‘]) 实现的效果一样吗?
4. 有列表 name = [‘F‘, ‘i‘, ‘h‘, ‘C‘],如果小甲鱼想要在元素 ‘i‘ 和 ‘h‘ 之间插入元素 ‘s‘,应该使用什么方法来插入?
动动手:
0. 自己动手试试看,并分析在这种情况下,向列表添加数据应当采用哪种方法比较好?
假设给定以下列表:
member = [‘小甲鱼‘, ‘黑夜‘, ‘迷途‘, ‘怡静‘, ‘秋舞斜阳‘]
要求将列表修改为:
member = [‘小甲鱼‘, 88, ‘黑夜‘, 90, ‘迷途‘, 85, ‘怡静‘, 90, ‘秋舞斜阳‘, 88]
方法一:使用 insert() 和 append() 方法修改列表。
方法二:重新创建一个同名字的列表覆盖。
1. 利用 for 循环打印上边 member 列表中的每个内容,如图:
小甲鱼 88 黑夜 90 迷途 85 怡静 90 秋舞斜阳 88
2. 上一题打印的样式不是很好,能不能修改一下代码打印成下图的样式呢?【请至少使用两种方法实现】
小甲鱼 88 黑夜 90 迷途 85 怡静 90 秋舞斜阳 88
答案:
>>> name = [‘F‘, ‘i‘, ‘s‘, ‘h‘] >>> name.append(‘C‘) >>> name [‘F‘, ‘i‘, ‘s‘, ‘h‘, ‘C‘] >>> name.extend([‘.‘, ‘c‘]) >>> name [‘F‘, ‘i‘, ‘s‘, ‘h‘, ‘C‘, ‘.‘, ‘c‘] >>> name.append([‘o‘, ‘m‘]) >>> name [‘F‘, ‘i‘, ‘s‘, ‘h‘, ‘C‘, ‘.‘, ‘c‘, [‘o‘, ‘m‘]]
>>> member = [1,2,3] >>> member.append([‘竹林小溪‘, ‘Crazy迷恋‘]) >>> member [1, 2, 3, [‘竹林小溪‘, ‘Crazy迷恋‘]] >>> member = [1,2,3] >>> member.extend([‘竹林小溪‘, ‘Crazy迷恋‘]) >>> member [1, 2, 3, ‘竹林小溪‘, ‘Crazy迷恋‘]
4. 有列表 name = [‘F‘, ‘i‘, ‘h‘, ‘C‘],如果小甲鱼想要在元素 ‘i‘ 和 ‘h‘ 之间插入元素 ‘s‘,应该使用什么方法来插入?
member.insert(1, 88) member.insert(3, 90) member.insert(5, 85) member.insert(7, 90) member.append(88)
方法二:
member = [‘小甲鱼‘, 88, ‘黑夜‘, 90, ‘迷途‘, 85, ‘怡静‘, 90, ‘秋舞斜阳‘, 88]
对于这种情况,明显是第二种方法看起来要好一些嘛。
不过对于大型的列表,第一种方法可能更合适,所以我们说永远没有最好的,只有最合适的。
1. 利用 for 循环打印上边 member 列表中的每个内容
member = [‘小甲鱼‘, 88, ‘黑夜‘, 90, ‘迷途‘, 85, ‘怡静‘, 90, ‘秋舞斜阳‘, 88] for each in member: print(each)
>>> member = [‘小甲鱼‘, 88, ‘黑夜‘, 90, ‘迷途‘, 85, ‘怡静‘, 90, ‘秋舞斜阳‘, 88] >>> for each in member: print(each) 小甲鱼 88 黑夜 90 迷途 85 怡静 90 秋舞斜阳 88
2. 上一题打印的样式不是很好,能不能修改一下代码打印成下图的样式呢?【请至少使用两种方法实现】
方法一: count = 0 length = len(member) while count < length: print(member[count], member[count+1]) count += 2 方法二: for each in range(len(member)): if each%2 == 0: print(member[each], member[each+1])
小甲鱼 88
黑夜 90
迷途 85
怡静 90
秋舞斜阳 88
0.0 注意,这道题跟上节课的那道题有点儿不同,回答完请上机实验或参考答案。
>>> old = [1, 2, 3, 4, 5] >>> new = old >>> old = [6] >>> print(new)
如果不上机操作,你觉得会打印什么内容?
>>> old = [1, 2, 3, 4, 5] >>> new = old >>> old = [6] >>> print(new) [1, 2, 3, 4, 5]
标签:应该 xtend append argument err 下列表 操作 情况 实现
原文地址:https://www.cnblogs.com/DC0307/p/9382472.html