码迷,mamicode.com
首页 > 编程语言 > 详细

课时10:列表:一个打了激素的数组1

时间:2018-07-28 18:30:53      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:应该   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

 

答案:

测试题答案:
 
0. 列表都可以存放一些什么东西?
我们说 Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型。
 
1. 向列表增加元素有哪些方法? 
这节课我们教过大家三种方法想列表增加元素,分别是:append()、extend() 和 insert()。
 
2. append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?
append() 方法是将参数作为一个元素增加到列表的末尾。
extend() 方法则是将参数作为一个列表去扩展列表的末尾。
>>> 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]]

 

3. member.append([‘竹林小溪‘, ‘Crazy迷恋‘]) 和 member.extend([‘竹林小溪‘, ‘Crazy迷恋‘]) 实现的效果一样吗?
不一样,因为怕大家没有仔细看上一题的示例,所以不懂的请看上一题解释。
>>> 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‘,应该使用什么方法来插入?
name.insert(2, ‘s‘)
 
动动手答案:
 
0. 自己动手试试看,并分析在这种情况下,向列表添加数据应当采用哪种方法比较好?
假设给定以下列表:
member = [‘小甲鱼‘, ‘黑夜‘, ‘迷途‘, ‘怡静‘, ‘秋舞斜阳‘]
要求将列表修改为:
member = [‘小甲鱼‘, 88, ‘黑夜‘, 90, ‘迷途‘, 85, ‘怡静‘, 90, ‘秋舞斜阳‘, 88]
方法一:使用 insert() 和 append() 方法修改列表。
方法二:重新创建一个同名字的列表覆盖。
解答:
方法一:
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]

 

 

 

课时10:列表:一个打了激素的数组1

标签:应该   xtend   append   argument   err   下列表   操作   情况   实现   

原文地址:https://www.cnblogs.com/DC0307/p/9382472.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!