1. 创建列表
a = [1,2,3,4,5,6,8,0] #列表元素是整数值 b = ['合肥工业大学', '在', '屯溪路', '193', '号', ',', '李勇', '在', '这里', '上', '大学'] #列表元素是字符串 c = [] #创建空列表 d = ['合肥工业大学',193,2018.6,a] #列表元素是混合类型 print(a) print(b) print(c) print(d) [1, 2, 3, 4, 5, 6, 8, 0] ['合肥工业大学', '在', '屯溪路', '193', '号', ',', '李勇', '在', '这里', '上', '大学'] [] ['合肥工业大学', 193, 2018.6, [1, 2, 3, 4, 5, 6, 8, 0]]
2. 添加元素: list.append()函数之间在列表末尾添加元素,list.insert(index,item)在列表index位置处添加元素item
a.append(11) print(a) [1, 2, 3, 4, 5, 6, 8, 0, 11] a.insert(2,9) print(a) [1, 2, 9, 3, 4, 5, 6, 8, 0, 11]
3. 删除元素:list.pop()直接删除列表最后一个元素,并返回此元素; list.pop(index)指定删除列表中index位置处的元素,并返回此元素;list.remove(item)指定删除列表中的item元素,没有返回值。del list[index]删除列表中index位置处的元素。
s1 = b.pop() print(s1) print(b) 大学 ['合肥工业大学', '在', '屯溪路', '193', '号', ',', '李勇', '在', '这里', '上'] s2 = b.pop(3) print(s2) print(b) 193 ['合肥工业大学', '在', '屯溪路', '号', ',', '李勇', '在', '这里', '上'] s3 = b.remove('这里') print(s3) print(b) None ['合肥工业大学', '在', '屯溪路', '号', ',', '李勇', '在', '上']
del b[2] print(b) ['合肥工业大学', '在', ',', '李勇', '在', '上']
注意:如果pop()中的索引index值超出列表范围或者remove()指定要删除的元素不在列表中,均会报错。
4. 修改元素: 直接利用索引对list[index]进行修改
d[1] += 5 print(d) d[0] += '真棒' print(d) d[2] = '测试' print(d) ['合肥工业大学', 198, 2018.6, [1, 2, 9, 3, 4, 5, 6, 8, 0, 11]] ['合肥工业大学真棒', 198, 2018.6, [1, 2, 9, 3, 4, 5, 6, 8, 0, 11]] ['合肥工业大学真棒', 198, '测试', [1, 2, 9, 3, 4, 5, 6, 8, 0, 11]]
5. 列表的其他操作
(1)获取列表长度和元素索引值: 默认返回第一次出现的位置
print(len(d)) print(d.index(a)) 4 3
(2) 统计列表中元素出现的次数
e = [1,2,3,4,3,2,6,8,9,3] print(e.index(3)) print(e.count(3)) 2 3
(3)反转列表:list.reverse(),不返回值; 利用切片list[::]
print(e) e1 = e.reverse() print(e) print(e1) [1, 2, 3, 4, 3, 2, 6, 8, 9, 3] [3, 9, 8, 6, 2, 3, 4, 3, 2, 1] None
print(e[::]) [3, 9, 8, 6, 2, 3, 4, 3, 2, 1]
(4) 连接列表: list1.extend(list2),或者list1.extend(item)
m = a.extend(b) print(m) print(a) None [1, 2, 9, 3, 4, 5, 6, 8, 0, 11, '合肥工业大学', '在', ',', '李勇', '在', '上', '合肥工业大学', '在', ',', '李勇', '在', '上']
a.extend('测试') print(a) [1, 2, 9, 3, 4, 5, 6, 8, 0, 11, '合肥工业大学', '在', ',', '李勇', '在', '上', '合肥工业大学', '在', ',', '李勇', '在', '上', '测', '试']
(5)排序: list1.sort(),直接对列表1进行排序修改,默认按升序,设置reverse=True, 可改为降序。
list3 = sorted(list2) 并没有直接修改list2,而是将list2的升序排序列表返回给list3, 保持list2不变。也有reverse参数。
list1 = [1, 2, 9, 3, 4, 5, 6, 8, 0, 11] list1.sort() print(list1) list1.sort(reverse=True) print(list1) [0, 1, 2, 3, 4, 5, 6, 8, 9, 11] [11, 9, 8, 6, 5, 4, 3, 2, 1, 0] list2 = [1, 2, 9, 3, 4, 5, 6, 8, 0, 11] list3 = sorted(list2) print(list2) print(list3) [1, 2, 9, 3, 4, 5, 6, 8, 0, 11] [0, 1, 2, 3, 4, 5, 6, 8, 9, 11]
(6)+-*/操作,list4 = list1*3,将列表list1中的元素复制3遍,赋值给list4
,list4 = list1*3 print(list1) print(list4) [11, 9, 8, 6, 5, 4, 3, 2, 1, 0] [11, 9, 8, 6, 5, 4, 3, 2, 1, 0, 11, 9, 8, 6, 5, 4, 3, 2, 1, 0, 11, 9, 8, 6, 5, 4, 3, 2, 1, 0]
+操作:列表1+列表2相当于将第1个列表和第2个列表的元素一起作为第三个列表的元素,列表1和2本身不发生变化。
列表和其他类型元素+操作会报错。
list5 = list1 + [3,4] print(list1) print(list5) [11, 9, 8, 6, 5, 4, 3, 2, 1, 0] [11, 9, 8, 6, 5, 4, 3, 2, 1, 0, 3,4]
-操作和/操作:直接报错
(6) 列表的拷贝:list5 = list1,等号list1的引用拷贝过来了,修改list5,list1会受到影响。list6=list1[::],利用切片拷贝则是相当于创建了一个一样的新列表,id值已经不同了。
list5 = list1 list6 = list1[::] print(id(list1),id(list5),id(list6)) print(list1) print(list5) print(list6) 2537439222152 2537439222152 2537439414536 [11, 9, 8, 6, 5, 4, 3, 2, 1, 0] [11, 9, 8, 6, 5, 4, 3, 2, 1, 0] [11, 9, 8, 6, 5, 4, 3, 2, 1, 0] list5[1] = 0 list6[2] = 0 print(list1) print(list5) print(list6) [11, 0, 8, 6, 5, 4, 3, 2, 1, 0] [11, 0, 8, 6, 5, 4, 3, 2, 1, 0] [11, 9, 0, 6, 5, 4, 3, 2, 1, 0]