今天我们来讲一下四大常用数据类型的第三个——列表。
忘了说常用四大数据类型——数字类型,字符串类型,列表类型,字典类型。
- 序列是 Python 中最基本的数据结构
- 序列中的每个值都有对应的“位置值”,称之为“索引”
- 第一个索引值是 0,第二个索引值是 1,依此类推。
- Python中最常见的序列类型是"列表"和"元组"。
- 列表是常用的Python数据类型,它是由一对中括号[],和在中括号里的元素组成。如[1,2,3]
- 列表中的元素不需要具有相同的数据类型(一个列表里,可以有数字类型的元素,也可以有字符串类型的元素,等等),如[1,"abc",1234]
- 列表都可以进行的操作包括:索引,切片,加,乘,检查成员
- Python也内置了诸如“确定序列的长度”和“确定最大和最小的元素”等方法。
列表:创建
- 创建一个列表,只需要把逗号分隔的不同的数据元素,使用中括号[],括起来即可
list1 = ['Google', 5676, 1241]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
列表:访问值
- 通过索引列表可以进行截取、组合等操作。
- 与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。
- 索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。
例子:
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
print( list[-1] )
print( list[-2] )
结果为:
red
green
blue
black
white
列表:切片
- 使用下标索引来访问列表中的值,同样你也可以使用方括号 [] 的形式截取字符,类似于字符串的切片
例子:
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])
print(nums[1:-2])
结果为:
[10, 20, 30, 40]
[20, 30, 40, 50, 60, 70]
列表:更新
- 你可以对列表的数据项进行修改或更新
- 你可以使用 append() 方法来添加列表项
- 你也可以使用extend()方法将另一个列表,合并到当前列表中
例子:
nums = [10, 20, 30]
print("append前的列表为:{}".format(nums))
nums.append(40)
print("append后的列表为:{}".format(nums))
print("append[1, 2]前的列表为:{}".format(nums))
nums.append([1, 2])
print("append[1, 2]后的列表为:{}".format(nums))
print("extend前的列表为:{}".format(nums))
nums.extend([50, 60, 70])
print("extend后的列表为:{}".format(nums))
结果为:
append前的列表为:[10, 20, 30]
append后的列表为:[10, 20, 30, 40]
append[1, 2]前的列表为:[10, 20, 30, 40]
append[1, 2]后的列表为:[10, 20, 30, 40, [1, 2]]
extend前的列表为:[10, 20, 30, 40, [1, 2]]
extend后的列表为:[10, 20, 30, 40, [1, 2], 50, 60, 70]
通过例子,我们可以对比出append和extend的区别:
- append方法是将指定的元素,作为一个单独的列表项,添加到原列表中
- extend方法是将另一个列表,合并到当前列表中
列表:删除元素
- 可以使用 del 语句来删除列表的的元素
例子:
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
del nums[2]
print("删除元素后的列表为:{}".format(nums))
结果为:
删除元素后的列表为:[10, 20, 40, 50, 60, 70, 80, 90]
列表:操作符
操作符:+
描述:合并列表
例子:[1,2,3] + [4,5,6]
结果:[1,2,3,4,5,6]
操作符:*
描述:重复列表
例子:[1,2,3]*3
结果:[1,2,3,1,2,3,1,2,3]
操作符:in
描述:查看指定元素是否存在于列表中
例子:
3 in [1,2,3]
'3' in [1,2,3]
结果为:
True
False
列表:嵌套
- 之前我们使用的列表都是一维列表
- Python也允许我们来表示二维列表,如[['a','b', 'c'], [1, 2, 3]]
例子:
tmp = [['a', 'b', 'c'], [1, 2, 3]]
print(tmp[0])
print(tmp[1])
print(tmp[0][0])
print(tmp[0][1])
结果为:
['a', 'b', 'c']
[1, 2, 3]
'a'
'b'
列表:常用方法
len()函数主要用于计算当前列表有多少个列表项
例子:
list_1 = [1,2,3]
list_2 = [['a', 'b', 'c'], [1, 2, 3]]
print(len(list_1))
print(len(list_2))
print(len(list_2[1]))
结果为:
3
2
3
max()函数主要用于返回当前列表中的最大值
min()函数主要用于返回当前列表中的最小值
例子:
list_1 = [-1,2,3]
print(max(list_1))
print(min(list_1))
结果为:
3
-1
列表:常用函数
- count() 方法用于统计某个元素在列表中出现的次数。
例子:
list_1 = [1, 1, 1, 2, 2, 3]
print(list_1.count(1))
print(list_1.count(2))
print(list_1.count(3))
print(list_1.count(4))
结果为:
3
2
1
0
- index() 函数用于从列表中找出某个值第一个匹配项的索引位置。
- 跟字符串的index()函数类似
- 可选参数:start开始位置,end结束位置
例子:
list_1 = [1, 1, 1, 2, 2, 3]
print(list_1.index(1))
print(list_1.index(3))
print(list_1.index(1, 1)) # 从索引1位置开始查
print(list_1.index(1, 2, 5)) # 从索引2位置开始,索引5位置前结束查
结果为:
0
5
1
2
- insert() 函数用于将指定对象插入列表的指定位置。
- 参数为:index,想要插入的索引位置。
例子:
list_1 = [1, 1, 1, 2, 2, 3]
list_1.insert(6, len(list_1)) # 在列表最后插入
print(list_1)
list_1.insert(0, 8) # 在索引为0的位置插入
print(list_1)
结果为:
[1, 1, 1, 2, 2, 3, 6]
[8, 1, 1, 1, 2, 2, 3, 6]
- pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
- 返回的元素,可以赋值给一个变量
例子:
list_1 = [1, 2, 3, 4, 5, 6]
print(list_1.pop())
print("pop后的list为:{}".format(list_1))
tmp = list_1.pop(3)
print("pop索引值为3后的list为:{}".format(list_1))
print("pop后的值为:{}".format(tmp))
结果为:
6
pop后的list为:[1, 2, 3, 4, 5]
pop索引值为3后的list为:[1, 2, 3, 5]
pop后的值为:4
- remove() 函数用于移除列表中某个值的第一个匹配项。
- 也就是说,指定一个元素项,然后先匹配是否在列表中,如果匹配到了,就删除第一个被匹配到的元素。
- 匹配不到的话,就会报错
例子:
list_1 = [1, 1, 2, 3, 4, 5, 6]
print(list_1.remove(1))
print(list_1.remove(3))
print(list_1.remove(7))
结果:
None
None
Traceback (most recent call last):
File "C:/Users/xxx/PycharmProjects/NewProject/T.py", line 4, in
print(list_1.remove(7))
ValueError: list.remove(x): x not in list
- reverse() 函数用于反向列表中元素。
- 就是让列表反向排列
例子:
list_1 = [1, 1, 2, 3, 4, 5, 6]
print("reverse前的列表为:{}".format(list_1))
list_1.reverse()
print("reverse后的列表为:{}".format(list_1))
结果为:
reverse前的列表为:[1, 1, 2, 3, 4, 5, 6]
reverse后的列表为:[6, 5, 4, 3, 2, 1, 1]
- sort() 函数用于对原列表进行排序
- 可选参数:reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)
例子:
list_1 = [1, 3, 2, -1, 4, 544, 6]
print("sort前的列表为:{}".format(list_1))
list_1.sort()
print("sort后的列表为:{}".format(list_1))
list_1.sort(reverse=True)
print("sort且降序的列表为:{}".format(list_1))
结果为:
sort前的列表为:[1, 3, 2, -1, 4, 544, 6]
sort后的列表为:[-1, 1, 2, 3, 4, 6, 544]
sort且降序的列表为:[544, 6, 4, 3, 2, 1, -1]
- clear() 函数用于清空列表
例子:
list_1 = [1, 3, 2, -1, 4, 544, 6]
print("clear前的列表为:{}".format(list_1))
list_1.clear()
print("clear后的列表为:{}".format(list_1))
结果为:
clear前的列表为:[1, 3, 2, -1, 4, 544, 6]
clear后的列表为:[]
- copy() 函数用于复制列表
例子为:
list_1 = [1, 3, 2, -1, 4, 544, 6]
list_2 = list_1.copy()
print("copy后的列表为:{}".format(list_2))
结果为:
copy后的列表为:[1, 3, 2, -1, 4, 544, 6]
注:部分文案和图片来自菜鸟教程网。