python集合 set 详解
pyton元组 tuple 详解
python字典 dict 详解
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. 列表大小的比较: 列表之间也可以比较大小
从第一个元素顺序开始比较,如果相等,则继续,返回第一个不想等元素比较的结果。如果所有元素比较均相等,则长的列表大,一样长则两列表相等
a = [1,2,3]
b = [1,3,5]
c = [1,2,3,-1]
print(a < b, a < c, b < c)
print(a > b, a > c, b > c)
True True False
False False True
6. 列表的其他操作
(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]