学点儿python

2023-12-29 03:25:43

if-else 改变成 and-or的形式

if "Love":
    520
else:
    404
res=("love" and 520) or 404

使用列表推导式,实现矩阵的转置

这里可以先了解一下列表推导式的几种形式

1.有规律的列表推导式:

list1 = [i for i in range(10)]
print(list1)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2.带有判断的推导式:

List3 = [i for i in range(10) if i % 2 == 0]
print(list3)
# [0, 2, 4, 6, 8]

3.多个for 的推导式:

list2 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list2)
# [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

接下来,完成转置:

matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Tmatrix=[[row[i] for row in matrix] for i in range(len(matrix[0]))]
print(Tmatrix)

那么应该怎么理解这个转置的列表推导式呢?

首先i表示列号,

当i等于0的时候,表示建立转置后的第一行,此时需要原数组的第一列,前一个循环中,遍历了 原数组每一列的第一个数

以此类推

最后是建立一个杨辉三角

可以根据当前的位置为上一行的数加上上一行左边的数建立,其中要知道join函数的作用是把列表变成一个新的字符串

def printyanghuisanjiao(n):
    target=[]
    for i in range(n):
        row=[1]*(i+1)
        for j in range(1,i):
            row[j]=target[i-1][j-1]+target[i-1][j]
        target.append(row)
    for row in target:
        print(" ".join(map(str,row)))

n=int(input("输入需要的行数"))
printyanghuisanjiao(n)

文章来源:https://blog.csdn.net/2301_80489323/article/details/135162099
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。