1.列表的定义
列表是有序集合,没有固定大小,能够保存任意数量任意类型的 Python 对象,语法为 [元素1, 元素2, …, 元素n]。
关键点是「中括号 []」和「逗号 ,」
中括号 把所有元素绑在一起
逗号 将每个元素一一分开
2.列表的创建
1)创建一个普通列表
#例1
list1 = ['Apple','Banana','Orange','Watermelon']
print(list1,type(list1))
['Apple', 'Banana', 'Orange', 'Watermelon']
2)使用推导式来创建列表
#例2:使用range()函数来创建
list2 = list(range(10))
print(list2,type(list2))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#例3:
list3 = [0] * 5
print(list3)
[0, 0, 0, 0, 0]
#例4:
list4 = [i for i in range(5)]
print(list4)
[0, 1, 2, 3, 4]
#例5:
list5 = [i ** 2 for i in range(1,10)]
print(list5)
[1, 4, 9, 16, 25, 36, 49, 64, 81]
#例6:
list6 = [i for i in range(1,100) if (i % 2) != 0 and (i % 3) !=0]
print(list6)
[1, 5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67, 71, 73, 77, 79, 83, 85, 89, 91, 95, 97]
注意:
由于list的元素可以是任何对象,因此列表中所保存的是对象的指针。即使保存一个简单的[1,2,3],也有3个指针和3个整数对象。
list = [a] * 4操作中,只是创建4个指向list的引用,所以一旦a改变,x中4个a也会随之改变。
#例7
list7 = [[0] * 3] * 4
print(list7)
list7[0][0] = 1
print(list7)
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
3)创建一个混合列表
列表里面的元素可以很多元,可以包含多种类型的数据,甚至是嵌套列表。
#例8
list8 = [2,'月',28,'日',[1,2,3]]
print(list8)
[2, '月', 28, '日', [1, 2, 3]]
4)创建一个空列表
#例9
list9 = []
print(list9)
[]
3.向列表中添加元素
列表内容可更改 (mutable),因此附加 (append, extend)、插入 (insert)、删除 (remove, pop) 这些操作都可以用在它身上。
1)list.append(obj) 在列表末尾添加新的对象,只接受一个参数,参数可以是任何数据类型,被追加的元素在 list 中保持着原结构类型。
#例10
list10 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(list10)
list10.append('Sunday')
print(list10)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Sunday']
如果追加的元素是一个列表的话,那么这个列表将被作为一个整体。
#例11
list11 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(list11)
list11.append(['Thursday','Saturday'])
print(list11)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', ['Thursday', 'Saturday']]
2)list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
#例12
list12 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
print(list12)
list12.extend(['Thursday','Saturday'])
print(list12)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Thursday', 'Saturday']
如例11和例12所示,append 是追加,把一个东西整体添加在列表后,而 extend 是扩展,把一个东西里的所有元素添加在列表后。
3)list.insert(index, obj) 在编号 index 位置插入 obj
#例13
list13 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
#使用len()函数可以获取列表的长度
print(len(list13))
#列表元素的编号从0开始
print(list13[0])
#insert()函数含有2个参数,第一个参数为要把元素插入到列表的哪个位置?第二个参数为要插入的参数
list13.insert(0,'haha')
print(list13[0])
5
Monday
haha
4.删除列表中的元素
1)list.remove(obj) 移除列表中某个值的第一个匹配项
#例14
list14 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday','Friday']
print(list14)
list14.remove('Friday')
print(list14)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Friday']
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
2)list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
#例15
list15 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday','Friday']
print(list15)
y = list15.pop()
print(y)
y = list15.pop(0)
print(y)
print(list15)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Friday']
Friday
Monday
['Tuesday', 'Wednesday', 'Thursday', 'Friday']
如例14,例15所示remove 和 pop 都可以删除元素,前者是指定具体要删除的元素,后者是指定一个索引
3)del var1[, var2 ……] 删除单个或多个对象
#例16:
list16 = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday','Friday']
print(list16)
del list16[1]
print(list16)
del list16[0:2]
print(list16)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Friday']
['Monday', 'Wednesday', 'Thursday', 'Friday', 'Friday']
['Thursday', 'Friday', 'Friday']
如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续使用它,就使用方法pop()
5.获取列表中的元素