下面是我总结的Python列表“[]”的使用:
列表的用法主要涉及到以下几个方面:
1、列表创建
2、添加元素
3、删除元素
4、查找元素
5、列表的(全局、局部)复制
6、列表和矩阵
1、列表的创建
列表中的元素可以是任何类型,数值类型、字符串,也可以是一个新的列表、字典、集合等,甚至是一个类的实例。而且元素即可以是具体某个值,也可以用变量代替。
# 1、创建列表
# 首先定义几个数据类型
class MyClass:
def __init__(self):
self.x = 1
self.y = 2
a = 2 # 整型
myTuple = (1, 2, 5) # 元组类型
myInstance = MyClass() # 类的实例
li = [1, 2, 3] # 列表类型
myDic = {"name": "ZML", "age": 16} # 字典类型
mySet = {1, 2, 3, 3, 4, "gff"} # 集合类型
# 创建列表
mylist = [a, 4.25, "hello", myInstance, myTuple, li, myDic, mySet]
print("\n", mylist)
执行结果
[2, 4.25, ‘hello’, <main.MyClass object at 0x104b9fd60>, (1, 2, 5), [1, 2, 3], {‘name’: ‘ZML’, ‘age’: 16}, {1, 2, 3, 4, ‘gff’}]
2、添加元素
列表元素的添加主要用到函数append()和insert()
# 2、添加元素
mylist[:0] = ["haha"] # 在列表开头插入元素
mylist.insert(0, "ahahah") # 在列表开头插入元素
mylist[len(mylist):] = [10] # 在列表结尾插入元素
mylist.append("end") # 在列表结尾插入元素
mylist.insert(len(mylist), 8) # 在列表结尾插入元素
mylist.insert(3, "haha") # 在某一位置插入元素
3、删除元素
对列表指定元素的删除主要用到函数remove()和pop(),而对某位置的元素使用del操作。
# 3、删除元素
mylist.remove(myInstance) # 在列表中删除第一次出现的myInstance这个对象
mylist.remove("haha") # 在列表中删除第一次出现的值为"haha"的元素
# mylist.remove(54) # 如果没有这个元素则返回一个错误
xx = mylist.pop() # 删除列表最后一个元素,并返回
yy = mylist.pop(3) # 删除列表中下标为3的元素,并返回
mylist.clear() # 删除列表所有项
del mylist[2] # 删除列表某一位置元素
del mylist[3:5] # 删除列表[3,5)位置的的元素
del mylist[:] # 删除列表所有项
4、查找元素
列表元素的查找主要用到函数index来获取第一次出现的位置下标
# 4、查找元素位置
mylist = ["hello", "how", "are", "you", "how", "are", "you", "how", "are", "you"]
xx = mylist.index("are") # 返回元素"are"第一次出现的位置,如果没找到,返回一个错误
5、元素复制
# 5、元素复制
newlist1 = mylist[4] # 将列表mylist中3号位置的元素复制给newlist1,如果newlist1原来有元素,会被覆盖
newlist2 = mylist[3:5] # 将列表mylist中[3,5)(左闭右开区间,相当于[3,4])位置的元素复制给newlist2,如果newlist2原来有元素,会被覆盖
newlist3 = mylist.copy() # 列表全部元素的复制
newlist4 = mylist[:] # 列表全部元素的复制
6、其他用法
# 6、其他用法
print(mylist)
ii = mylist.count("are") # 返回"are"出现的次数
print("are出现了", ii, "次")
mylist.reverse() # 将原列表元素原序列颠倒
print("颠倒后:", mylist)
mylist.sort() # 对原列表排序
print("排序后:", mylist)
执行结果:
[‘hello’, ‘how’, ‘are’, ‘you’, ‘how’, ‘are’, ‘you’, ‘how’, ‘are’, ‘you’]
are出现了 3 次
颠倒后: [‘you’, ‘are’, ‘how’, ‘you’, ‘are’, ‘how’, ‘you’, ‘are’, ‘how’, ‘hello’]
排序后: [‘are’, ‘are’, ‘are’, ‘hello’, ‘how’, ‘how’, ‘how’, ‘you’, ‘you’, ‘you’]
7、矩阵
(1) 在Python中,矩阵可以用嵌套列表来表示,类似于在C++或Java中的二维数组。
# 7、矩阵(二维数组)
# 定义一个3×4的矩阵
row1 = [1, 2, 3, 4]
row2 = [5, 6, 7, 8]
row3 = [9, 10, 11, 12]
myMatrix = [row1, row2, row3]
print("3×4矩阵:", myMatrix)
# 定义一个5×3的矩阵
row1 = [1, 2, 3]
row2 = [4, 5, 6]
row3 = [7, 8, 9]
row4 = [10, 11, 12]
row5 = [13, 14, 15]
myMatrix2 = [row1, row2, row3, row4, row5]
print("5×3矩阵:", myMatrix2)
执行结果:
3×4矩阵: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
5×3矩阵: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]]
(2) 矩阵的转置
# 矩阵的转置
myMatrix_transpose = [[row[i] for row in myMatrix] for i in range(len(myMatrix[0]))]
print("3×4矩阵转置后:", myMatrix_transpose)
myMatrix2_transpose = [[row[i] for row in myMatrix2] for i in range(len(myMatrix2[0]))]
print("5×3矩阵转置后:", myMatrix2_transpose)
执行结果:
3×4矩阵转置后: [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
5×3矩阵转置后: [[1, 4, 7, 10, 13], [2, 5, 8, 11, 14], [3, 6, 9, 12, 15]]
# 写个函数
def transpose(matrix):
if not matrix:
print("空矩阵")
return matrix
else:
matrix_transpose = []
for i in range(len(matrix[0])):
matrix_transpose.append([x[i] for x in matrix])
return matrix_transpose
# 测试
m = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
newMatrix = transpose(m)
print("原矩阵:", m)
print("转置后:", newMatrix)
执行结果:
原矩阵: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
转置后: [[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]