Python编程学习4:列表的使用详解

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]



猜你喜欢

转载自blog.csdn.net/zhuzuwei/article/details/80550979
今日推荐