一.列表的创建:python中的列表不同于数组,列表中的元素可以是我们学过的任何数据类型
1.创建一个普通的列表
2.创建一个混合元素类型的列表
3.创建一个空列表
>>> #1.创建一个普通的列表
>>> name=['Swan','Jimmy','Danil']
>>> name
['Swan', 'Jimmy', 'Danil']
>>> #2.创建一个混合元素类型的列表
>>> mix=[5,'Jasper',3.14,name]
>>> mix
[5, 'Jasper', 3.14, ['Swan', 'Jimmy', 'Danil']]
>>> mix1=[2,'Xixi',3.22,['Tony',6]]
>>> mix1
[2, 'Xixi', 3.22, ['Tony', 6]]
>>> #3.创建一个空列表
>>> empty=[]
>>> empty
[]
二.向列表中添加元素:
1.append():将参数作为一个元素增加到列表的末尾
2.extend():将参数作为一个列表去扩充到列表的末尾
3.insert(index,key):向列表指定位置插入元素,index表示插入位置,key为插入的元素,位置从0开始
>>> empty=[]
>>> #1.append()
>>> empty.append('A')
>>> empty
['A']
>>> #2.extend() 参数的类型是列表类型
>>> empty.extend('B','C')
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
empty.extend('B','C')
TypeError: extend() takes exactly one argument (2 given)
>>> empty.extend(['B','C'])
>>> empty
['A', 'B', 'C']
>>> #3.insert()
>>> empty.insert(1,'D')
>>> empty
['A', 'D', 'B', 'C']
注意:append()方法和extend()方法的区别:
>>> empty1=[];empty2=[]
>>> #1.区别一
>>> empty1.append('Swan')
>>> empty2.extend('Swan')
>>> empty1;empty2
['Swan']
['S', 'w', 'a', 'n']
append()方法是将参数作为一个元素添加进去的,而 extend()方法是将参数作为一个列表来扩充当前列表的。也就是说empty.append(['A','B'])与empty.extend(['A','B'])的结果是不同的,请看下例:
>>> #2.区别二
>>> name=['Jasper','neinei']
>>> empty1=['A'];empty2=['A']
>>> empty1.append(name)
>>> empty2.extend(name)
>>> empty1;empty2
['A', ['Jasper', 'neinei']]
['A', 'Jasper', 'neinei']
注意下面程序:(这是我刚开始的时候遇到的问题,久思不得其解,而后恍然大悟)
#下面这一段程序的代码结果是相同的
>>> empty1=empty2=[]
>>> empty1.append("Swan")
>>> empty2.extend(['A','B'])
>>> empty1;empty2
['Swan', 'A', 'B']
['Swan', 'A', 'B']
#但是这一段程序的结果是不同的
>>> empty1=empty2=[]
>>> empty2=[1,2]
>>> empty1=[3]
>>> empty1;empty2
[3]
[1, 2]
第一段程序的empty1和empty2进行了一次初始化,分到了一块相同的空间,所以不管对谁进行添加元素的操作,最终的结果都是empty1和empty2的结果是一样的;然而第二段程序的empty1和empty2都分别进行了两次初始化,第一次初始化两个列表变量指向相同的存储空间,而下面的empty2=[1,2]; empty1=[3]我理解成了是对列表赋值,其实这是与第一次毫不相干的又一次的初始化。