Python列表的使用

下面是我总结的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]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋之颂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值