python之矩阵的旋转

  一个矩阵我们想让它通过编程,实现各种花样的变化怎么办呢?

  我发现百度没有很好的代码,我就自己研究啦!

用到的函数

pop([index])

  删除并返回列表中下标为index(默认为-1)的元素

reverse()

  对列表所有元素进行逆序

好多问题

按行逆序输出矩阵

问题描述1

  初始矩阵a=[[1,2,3],[4,5,6]]变化成a=[[4,5,6],[1,2,3]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('按行倒序输出')
a.reverse()
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()

运行结果

按列倒序输出矩阵

问题描述2

   初始矩阵变化成a=[[3,2,1],[6,5,4]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('按列倒序输出')
for i in range(n):
    for j in range(m):
        print(a[i].pop(),end=' ')
    print()

运行结果

顺时针旋转90度

问题描述3

  初始矩阵变化成a=[[4,1],[5,2],[6,3]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('顺时针旋转90度')
a.reverse()#将矩阵中的元素按行逆序
#改变矩阵的形状
for i in range(m):
    for j in range(n):
        print(a[j][i],end=' ')
    print()

运行结果

顺、逆时针旋转180度

问题描述4

  初始矩阵变化成a=[[6,5,4],[3,2,1]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('顺时针旋转180度')
a.reverse()#将矩阵中的元素按行逆序
#按列倒序输出
for i in range(n):
    for j in range(m):
        print(a[i].pop(),end=' ')
    print()

运行结果

 

逆时针旋转90度

问题描述5

  初始矩阵变化成a=[[3,6],[2,5],[1,4]]

n=2
m=3
a=[[1,2,3],[4,5,6]]
print('初始矩阵')
for i in range(n):
    for j in range(m):
        print(a[i][j],end=' ')
    print()
print('逆时针旋转90度')
#改变矩阵的形状,再倒序输出
for i in range(m):
    for j in range(n):
        print(a[j].pop(),end=' ')
    print()

运行结果

 

对问题的思考

  python自带了很多函数,我们要充分的利用起来。刚开始我解决问题的时候想得是该一下循环和数组的下标,因为c、c++语言解决这个问题的时候就很容易就解决了。但是呢,python总是说IndexError: list index out of range,好的下标越界了,可是我们定义数组的时候它也不让这么写啊(例如,a[105][105]),我们只能这么写(a=[])。可能我刚学,还不知道解决的方法。大家如果知道的话,一定要告诉我呀。

  所以说呢,它不让这么改变,我们只能用函数来解决啦。

  今天又是爱学习的好孩子呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值