本节我们来学习一下Python里面除了数字和字符串之外用得最多的数据类型——列表。
其实完全可以把列表类比于C/CPP里面的数组,而且这个列表的涵盖范围更加广阔,在C/CPP里面的数组每个存储单元只能够是数字,而列表中则可以是任意数据类型,包括数字、字符串、甚至是列表自己,元组,字典和集合。列表嵌套列表你可以理解成二维列表,类似于C/CPP里面的二维数组。
Python现在广泛用于各种数据分析和AI领域里面,数据处理和分析能力是Python相比于其它语言最牛的地方,甚至加上各种库之后可以在某种程度上替代Matlab,而列表在Python中承担起了这个巨大责任:联合numpy、pandas、scipy等各种库,利用列表转化成矩阵进行数据分析。
关键1:列表定义
Python中列表定义采用中括号[]进行定义,如下:
#Python 列表
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
关键2:列表索引读取
Python中列表索引和读取和C/CPP类似,都是采用[]进行索引,唯一不同的是其有类似于Matlab的读取方法,不需要通过循环进行一段的索引,而是通过[:]这种方式进行索引。并且如字符串一样,支持利用负数进行反向索引,如下:
L=['Google', 'Runoob', 'Taobao']
print(L[2])
print(L[-1])
print(L[1:])
print(L[1:2])
关键3:列表操作:更新、删除、连接等操作
Python中列表更新可以直接利用索引符号进行修改,如果需要在列表最后插入一个新的元素,利用append(x)函数可以做到这个效果;甚至可以直接利用del语句进行索引后删除列表中特定的某个元素;连接同样是如字符串一样利用+号,重复输出则利用*号,如下:
#更新列表
list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2])
list[2] = 2001#直接使用下标索引更改
print ("更新后的第三个元素为 : ", list[2])
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')#append在列表最后增加列表项
print ("更新后的列表 : ", list1)
#删除列表元素
list = ['Google', 'Runoob', 1997, 2000]
print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)
#Python列表脚本操作符
#列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
# len([1, 2, 3]) 3 长度
print(len([1,2,3]))
# [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
print([1,2,3]+[4,5,6])
# ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
print(["Hi"*4])
# 3 in [1, 2, 3] True 元素是否存在于列表中
print(3 in [1,2,3])
关键4:数据推导式
这个在之前的系列已经讲过,不再赘述,如下:
# for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代
for x in [1,2,3]:print(x,end="")#迭代这个比较重要
关键5:嵌套列表
列表里面可以存在各种数据类型,也包括列表自身,如果列表的元素还是列表,就称其为嵌套列表,直接利用C/CPP里的二维数组进行理解就好啦,如下:
#嵌套列表
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]#嵌套列表
print(x)#嵌套列表输出
print(x[0])
print([0][1])
#类似于二维数组
关键6:列表常用函数及方法
在代码块最后的注释有详细说明。
———————————————————————————————————————————
基于菜鸟教程:Python3 列表 | 菜鸟教程 的代码如下,可直接运行查看运行结果:
#Python 列表
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
print( list[1] )
print( list[2] )
print( list[-1] )
print( list[-2] )
print( list[-3] )
nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])
list = ['Google', 'Runoob', "Zhihu", "Taobao", "Wiki"]
# 读取第二位
print ("list[1]: ", list[1])
# 从第二位开始(包含)截取到倒数第二位(不包含)
print ("list[1:-2]: ", list[1:-2])
#更新列表
list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2])
list[2] = 2001#直接使用下标索引更改
print ("更新后的第三个元素为 : ", list[2])
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')#append在列表最后增加列表项
print ("更新后的列表 : ", list1)
#删除列表元素
list = ['Google', 'Runoob', 1997, 2000]
print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)
#Python列表脚本操作符
#列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
# len([1, 2, 3]) 3 长度
print(len([1,2,3]))
# [1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
print([1,2,3]+[4,5,6])
# ['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
print(["Hi"*4])
# 3 in [1, 2, 3] True 元素是否存在于列表中
print(3 in [1,2,3])
# for x in [1, 2, 3]: print(x, end=" ") 1 2 3 迭代
for x in [1,2,3]:print(x,end="")#迭代这个比较重要
#Python列表截取 下标索引
L=['Google', 'Runoob', 'Taobao']
print(L[2])
print(L[-1])
print(L[1:])
#Python列表拼接 +号拼接
squares1 = [1, 4, 9, 16, 25]
squares1 += [36, 49, 64, 81, 100]
print(squares1)
squares2 = [2 ,10 ,100]
squares = squares1 +squares2
print(squares)
#嵌套列表
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]#嵌套列表
print(x)#嵌套列表输出
print(x[0])
print([0][1])
#类似于二维数组
#Python列表函数与方法
# 1 len(list)
# 列表元素个数
# 2 max(list)
# 返回列表元素最大值
# 3 min(list)
# 返回列表元素最小值
# 4 list(seq)
# 将元组转换为列表
# 1 list.append(obj)
# 在列表末尾添加新的对象
# 2 list.count(obj)
# 统计某个元素在列表中出现的次数
# 3 list.extend(seq)
# 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
# 4 list.index(obj)
# 从列表中找出某个值第一个匹配项的索引位置
# 5 list.insert(index, obj)
# 将对象插入列表
# 6 list.pop([index=-1])
# 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
# 7 list.remove(obj)
# 移除列表中某个值的第一个匹配项
# 8 list.reverse()
# 反向列表中元素
# 9 list.sort( key=None, reverse=False)
# 对原列表进行排序
# 10 list.clear()
# 清空列表
# 11 list.copy()
# 复制列表