一、列表可以存放的内容
列表可以存放哪些类型?
列表是一个发仓库,所学过的所有类型,都可以放在列表里面。
二、创建列表
空列表:
>>> number = []
>>> number
[]
>>>
普通列表:
>>> name = ['lili','lulu','nana']
>>> name
['lili', 'lulu', 'nana']
混合列表:
>>> mix = [1,2,3,'polo',[11,6,7],(3.14,)]
>>> mix
[1, 2, 3, 'polo', [11, 6, 7], (3.14,)]
>>>
三、向列表中添加元素
1.append() :默认在列表末尾追加新的对象。即将参数作为一个元素增加到列表尾部。(append的参数只有一个,append一次只能添加一个元素)
>>> mix
[1, 2, 3, 'polo', [11, 6, 7], (3.14,)]
>>> mix.append(9)
>>> mix
[1, 2, 3, 'polo', [11, 6, 7], (3.14,), 9]
>>> mix.append('doudou')
>>> mix
[1, 2, 3, 'polo', [11, 6, 7], (3.14,), 9, 'doudou']
>>>
2.extend():在列表的尾部一次性追加另一个序列中的多个值,即将参数作为一个列表去扩展原列表。
>>> mix
[1, 2, 3, 'polo', [11, 6, 7], (3.14,), 9, 'doudou']
>>> mix.extend([5,6,'hello'])
>>> mix
[1, 2, 3, 'polo', [11, 6, 7], (3.14,), 9, 'doudou', 5, 6, 'hello']
>>> len(mix)
11
>>>
注意:extend()也可以在列表尾部插入一个元素
>>> a
[1, 3, 4, [5, 7, 9]]
>>> a.extend('0')
>>> a
[1, 3, 4, [5, 7, 9], '0']
>>>
3.insert():有2个参数,第一个参数是待插入的位置,第二个参数是在该待插入位置,插入的值。
>>> mix
[1, 2, 3, 'polo', [11, 6, 7], (3.14,), 9, 'doudou', 5, 6, 'hello']
>>> mix.insert(2,'python')
>>> mix
[1, 2, 'python', 3, 'polo', [11, 6, 7], (3.14,), 9, 'doudou', 5, 6, 'hello']
>>>
课后习题:
1. 向列表增加元素有哪些方法?
append()、extend() 和 insert()。
2.append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?
两者在很多情况下可以通用,但是一个大的区别在处理列表元素时:
示例:
>>> a = [1,3,4]
>>> b = [5,7,9]
>>> a.append(b)
>>> a
[1, 3, 4, [5, 7, 9]]
>>>
>>> a
[1, 3, 4, [5, 7, 9], '0']
>>> a.extend([9,8,6])
>>> a
[1, 3, 4, [5, 7, 9], '0', 9, 8, 6]
>>>
从上例可以看出明显的区别。即append一次只能添加一个元素,而extend方法可以添加多个元素,但是多个元素必
须用[ ]括起来。另外还有一个insert()方法,可以指定在列表中插入的位置。
参考答案:
append() 方法是将参数作为一个元素增加到列表的末尾。
extend() 方法则是将参数作为一个列表去扩展列表的末尾。
3. member.append(['竹林小溪', 'Crazy迷恋']) 和 member.extend(['竹林小溪', 'Crazy迷恋']) 实现的效果一样吗?
>>> member = [1,2,'polo','lili','Jones']
>>> member.append(['竹林小溪', 'Crazy迷恋'])
>>> member
[1, 2, 'polo', 'lili', 'Jones', ['竹林小溪', 'Crazy迷恋']]
>>> member.extend(['竹林小溪', 'Crazy迷恋'])
>>> member
[1, 2, 'polo', 'lili', 'Jones', ['竹林小溪', 'Crazy迷恋'], '竹林小溪', 'Crazy迷恋']
>>>
4. 有列表 name = ['F', 'i', 'h', 'C'],如果小甲鱼想要在元素 'i' 和 'h' 之间插入元素 's',应该使用什么方法来插入?
>>> name = ['F','i','s','c']
>>> name.insert(3,'h')
>>> name
['F', 'i', 's', 'h', 'c']
>>>
动动手:
0. 自己动手试试看,并分析在这种情况下,向列表添加数据应当采用哪种方法
比较好?
假设给定以下列表:
member = [' 小甲鱼 ', ' 黑夜 ', '迷途', ' 怡静', ' 秋舞斜阳 ']
要求将列表修改为:
member = [' 小甲鱼 ', 88, ' 黑夜 ', 90, ' 迷途 ', 85, ' 怡静', 90, ' 秋舞斜阳 ', 88]
方法一:使用 insert() 和 append() 方法修改列表。
>>> member = ['polo', 'lili', 'Jones','Lucy','Emma','David']
>>> member.insert(1,89)
>>> member.insert(3,94)
>>> member.insert(5,85)
>>> member.insert(7,90)
>>> member.insert(9,88)
>>> member.insert(11,90) (最后一句也可以用member.append(90))
>>> member
['polo', 89, 'lili', 94, 'Jones', 85, 'Lucy', 90, 'Emma', 88, 'David', 90]
>>>
方法二:重新创建一个同名字的列表覆盖。
>>>member = ['polo', 89, 'lili', 94, 'Jones', 85, 'Lucy', 90, 'Emma', 88, 'David', 90]
上述两种方法,看实际情况来使用,列表简单的时候可直接用方法二,列表复杂的情况用方法一比较好。
1. 利用 for 循环打印上边 member 列表中的每个内容,如:
>>> member
['polo', 89, 'lili', 94, 'Jones', 85, 'Lucy', 90, 'Emma', 88, 'David', 90]
>>> for each in member:
print(each)
polo
89
lili
94
Jones
85
Lucy
90
Emma
88
David
90
>>>
2. 上一题打印的样式不是很好, 能不能修改一下代码打印成下图的样式呢? 【请
至少使用两种方法实现】
方法一:
>>> count=0
>>> member
['polo', 89, 'lili', 94, 'Jones', 85, 'Lucy', 90, 'Emma', 88, 'David', 90]
>>> while count <= len(member):
print(member[count],member[count+1])
count += 2
polo 89
lili 94
Jones 85
Lucy 90
Emma 88
David 90
方法二:
>>> member
['polo', 89, 'lili', 94, 'Jones', 85, 'Lucy', 90, 'Emma', 88, 'David', 90]
>>> for each in range(len(member)):
if each % 2 ==0:
print(member[each],member[each+1])
polo 89
lili 94
Jones 85
Lucy 90
Emma 88
David 90
>>>
3. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方
式!