Python基础语法 - 专栏链接
目录
5. count()统计次数、sort()排序、reverse()反转、copy()复制、clear()清空
1. 概念
一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。
list = [1,'a',2.5] # 定义列表list
print('列表list : ' + str(list))
# 列表list : [1, 'a', 2.5]
2. 提取单个元素、提取多个元素(切片用法)
2.1 提取单个元素
列表中的各个元素,好比教室里的某排学生那样,是有序地排列的,也就是说,每个元素都有自己的位置编号(即偏移量)。
students = ['小白','小明','小梦']
print(students[0])
print(students[1])
print(students[2])
# 小白
# 小明
# 小梦
偏移量是从0开始的,而非我们习惯的从1开始,偏移量我们也称为索引;
列表变量名后加带偏移量的中括号,就能取到相应位置的元素。
2.2 提取多个元素(切片用法)
偏移量取到的是列表中的元素,而切片则是截取了列表的某部分,所以还是列表。
切片口诀:左右空,取到头,左要取,右不取。
number = [1,2,3,4,5]
print(number[:2])
# 打印出 [1, 2] 左边空取到头(左右空,取到头)右边索引2对应的元素3不取(右不取)
print(number[2:])
# 打印出 [3, 4, 5] 右边空取到头(左右空,取到头)左边索引2对应的元素3要取(左要取)
print(number[:])
# 打印出 [1, 2, 3, 4, 5] 左右边空取到头(左右空,取到头)
print(number[1:3])
# 打印出 [2, 3] 左边索引为1对应的元素2要取,右边索引3对应的元素4不取(左要取,右不取)
2.3 反向索引
正向索引方式:从 0 开始,到列表长度减 1 的索引值结束,索引值从左到右递增。
反向索引方式:从 -1 开始,索引值从右到左递减。
number = [1,2,3,4,5]
print(number[1:-1])
# 打印出 [2, 3, 4] 左边索引为1对应的元素2要取(左要取)右边索引-1对应的元素5不取(右不取)
print(number[-3:])
# 打印出 [3, 4, 5] 左边索引为-3对应的元素3要取(左要取)右边空取到头(左右空,取到头)
用正向索引和反向索引,根据具体场景需求,哪个方便用哪个。
3. append()、insert() 给列表增加元素
append():给列表增加元素,在列表的最后位置添加元素。
number = [1,2,3,4,5]
number.append(6)
print(number)
# [1, 2, 3, 4, 5, 6]
insert():给列表增加元素,在列表的任意一个位置添加元素。
number = [1,2,3,4,5]
number.insert(2,6) # 索引为2处添加元素6
print(number)
# [1, 2, 6, 3, 4, 5]
4. del、pop() 、remove()给列表删除元素
del : 传入所需删除的列表索引,来删除元素。
number = [1,2,3,4,5]
del number[0]
print(number)
# [2, 3, 4, 5]
pop() : 传入所需删除的列表索引,来删除元素,pop() 方法会返回被删除的元素,del 则不会。
number = [1,2,3,4,5]
item = number.pop(0)
print(number)
# [2, 3, 4, 5]
remove() :很多时候我们知道要删除的元素内容,不知道其索引。这时就可以使用 remove() 方法,只要传入需要删除的元素内容,就会删除从左到右第一个内容一样的元素。
number = [1,2,3,4,5]
number.remove(3) # 删除数字3
print(number)
# [1, 2, 4, 5]
5. count()统计次数、sort()排序、reverse()反转、copy()复制、clear()清空
count() 统计次数 : 方法可以统计元素在列表中出现的次数。
list = ['唐僧','孙悟空','猪八戒','沙和尚','孙悟空']
print(list.count('孙悟空'))
# 2
sort() 排序 :可以对列表进行排序,直接调用 .sort() 后,Python 会使用默认的排序方法对其排序。不同数据类型的排序方法不一样.
number = ['b','c','a','ab','ac','1','bc']
number.sort() # 注意只能对同类数据类型排序,这里全是字符串
print(number)
# ['1', 'a', 'ab', 'ac', 'b', 'bc', 'c']
reverse()反转 :可以对列表进行反向排序。
letter = ['a','b','c']
letter.reverse()
print(letter)
# ['c', 'b', 'a']
copy()复制 :可以复制列表到另一个列表。
letter = ['a','b','c']
letter_one = letter.copy()
print(letter_one)
# ['a', 'b', 'c']
clear()清空 :可以清空列表。
letter = ['a','b','c']
letter.clear()
print(letter)
# []
6. 列表推导式
基本形式为: [表达式 for 变量 in 列表]
number = [i for i in range(11)]
print(number)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
复杂形式为: [表达式 for 变量 in 列表 带条件]
# 0-10取偶数 0 2 4 6 8 10
number = [i for i in range(11) if i%2 == 0]
print(number)
# [0, 2, 4, 6, 8, 10]
7. 元祖
元组和列表非常相似。不同之处在于,外观上:列表是被方括号包裹起来的,而元组是被圆括号包裹起来的。本质上:列表里的元素可修改,元组里的元素是不可修改的。
所以如果你想存储一组有序数据,但是不希望它在任何地方被修改,这时候可以考虑使用元组。元组具有列表的大多数特性,比如索引:
names = ("孙悟空", "猪八戒", "沙和尚")
# 元组的索引和列表索引相同
print(names[0])
# 孙悟空
我们不能修改元组里的元素,运行时将会报错:
names = ("孙悟空", "猪八戒", "沙和尚")
names[2] = '白龙马'
print(names)
# 报错:TypeError: 'tuple' object does not support item assignment
# 意思为:类型错误:'tuple'对象不支持项赋值
练习题
同学们,先自觉练习,答案在公众号,公众号回复暗号【答案】即可。
1. 下列选项中,哪一个选项不是用来给列表添加元素的?
A. students.append('孙悟空')
B. students.index("唐僧")
C. students.insert(1, '猪八戒')
2. 下列选项中,哪一项可以从 names 列表中移除'猪八戒':
names = ["孙悟空", "猪八戒", "沙和尚"]
A. names.del(1)
B. del names[1]
C. del names[2]
D. names.insert(1,'猪八戒')
3. 下列代码打印的结果为?
names = ["孙悟空", "猪八戒", "沙和尚"]
del names[0]
print(names[2])
A. 孙悟空
B. 猪八戒
C. 沙和尚
D. 报错
4. 下列代码中打印结果为?
number = [1,2,6,3,6,4,6,5]
number_6 = [i for i in number if i == 6]
print(number_6)
A. [6]
B. [1, 2, 3]
C. [4, 6, 5]
D. [6, 6, 6]
5. 业务场景:语文考试中,同学们的成绩依次为:85,88,65,75,90,95,92,90。请问该班级语文考试成绩的平均分是多少?
要求:用列表接收所有同学成绩。
提示:自学模块:百度Python的sum()函数的用法,Python编程自学模块是必经之路。
联系我们,一起学Python吧
关注我们CSDN吧:每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。
微信群(关注「Python家庭」一起轻松学Python吧)
QQ 群(983031854)