第010讲:列表:一个打了激素的数组1
讲课笔记
创建一个列表
1.匿名列表:>>> [1, 2, 3, 4, 5]#没啥乱用的列表
2.带变量名的列表:>>>number = [1, 2, 3, 4, 5]
3.列表的类型是’list’,如下所示:>> num = [1, 2, 3] >> type(num) <class 'list'>
4.一个列表里面可以装各种东西,像是整数啊、浮点数啊、字符串啊、另一个列表啊,还可以装一个对象。
向列表中添加元素
三种方法:
1.append()方法:参数是元素,会将此元素添加到目标列表表尾。这个元素可以是各种东西;
2.extend()方法:此方法事实上是使用一个列表来扩充另一个列表,所以它的参数是另一个列表,也是添加至列表表尾;
3.insert()方法:两个参数,第一个参数是索引值,第二个参数是待插入的元素,其中索引值有特殊用法,可以是负数,负数表示距队尾元素的相对距离,如:>>number = [0, 1, 2, 3] >>number.insert(-1, 2.5) >>number [0, 1, 2, 2.5, 3]
4.这三种像是函数的东西并不是函数,而是列表对象的方法,这个小圆点’.‘可以理解为范围的意思,举例:append()这个方法是属于一个叫number的列表对象的。
思尻题
0. 列表都可以存放一些什么东西?
我答:整数、浮点数、字符串、对象、列表
鱼答:我们说 Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型。
>>> mix = [1, ‘小甲鱼’, 3.14, [1, 2, 3]]
思尻:牛逼,大杂烩~
1. 向列表增加元素有哪些方法?
我:三种‘方法’,append()、extend()、insert();
鱼:同上
思尻:对象的方法,要好好理解~
2. append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?
我:参数和细节不一样,一言以蔽之:
1.append()的参数是一个元素,功能是将这个元素添加至原始列表的尾部;
2.entend()的参数是一个列表,功能是将这个列表中的所有元素添加至原始列表的尾部。
鱼: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迷恋’]) 实现的效果一样吗?
我:不一样:
append()实现效果:[…, [‘竹林小溪’, ‘Crazy迷恋’]];
extend()实现效果:[…, ‘竹林小溪’, ‘Crazy迷恋’]。
鱼:看上一题
思尻:已经掌握了
4. 有列表 name = [‘F’, ‘i’, ‘h’, ‘C’],如果小甲鱼想要在元素 ‘i’ 和 ‘h’ 之间插入元素 ‘s’,应该使用什么方法来插入?
我:name.insert(2, 's')
鱼:name.insert(2, 's')
思尻:ez~
冻手题
0. 自己动手试试看,并分析在这种情况下,向列表添加数据应当采用哪种方法比较好?
假设给定以下列表:
member = [‘小甲鱼’, ‘黑夜’, ‘迷途’, ‘怡静’, ‘秋舞斜阳’]
要求将列表修改为:
member = [‘小甲鱼’, 88, ‘黑夜’, 90, ‘迷途’, 85, ‘怡静’, 90, ‘秋舞斜阳’, 88]
方法一:使用 insert() 和 append() 方法修改列表。
方法二:重新创建一个同名字的列表覆盖。
我:
>>> member = ['小甲鱼', '黑夜', '迷途', '怡静', '秋舞斜阳']
>>> member
['小甲鱼', '黑夜', '迷途', '怡静', '秋舞斜阳']
>>> 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]
>>> member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
>>> member
['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
>>>
鱼:
1:
member.insert(1, 88)
member.insert(3, 90)
member.insert(5, 85)
member.insert(7, 90)
member.append(88)
2:
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
对于此题情况,明显是第二种方法看起来要好一些嘛。
不过对于大型的列表,第一种方法可能更合适,所以我们说永远没有最好的,只有最合适的。
思尻:没有最好的,只有最合适的
1. 利用 for 循环打印上边 member 列表中的每个内容,如图:
我:
>>>member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
>>> for temp in member:
print(temp)
小甲鱼
88
黑夜
90
迷途
85
怡静
90
秋舞斜阳
88
鱼:
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
for each in member:
print(each)
思尻:for 的用法,高级!
2.上一题打印的样式不是很好,能不能修改一下代码打印成下图的样式呢?【请至少使用两种方法实现】
我:
#法一
>>> for temp in member:
print(temp, end = ' ')
if isinstance(temp, int):
print()
小甲鱼 88
黑夜 90
迷途 85
怡静 90
秋舞斜阳 88
>>>
鱼:
方法一:
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])
思尻:
1.了解对列表中元素的获取方式,member[索引值];
2.len()函数,可以用于返回列表的长度,也可用于返回字符串的长度。