Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python填充正方形矩阵的对角线_Python - Fatal编程技术网

用python填充正方形矩阵的对角线

用python填充正方形矩阵的对角线,python,Python,我是python新手,我正在努力学习它。我一直在尝试制作一个简单的脚本,其中输入一个数字n,表示矩阵的行数和列数。在这之后,矩阵的对角线上应该有“*”和边上的“#”,其余的都是空白。 我一直在尝试这样的事情,但实际上并不奏效: my_list=[] n=int(input("please enter the number of lines and columns: ")) my_list[0][0:n-1]="#" my_list[n-1][0:n-1]=

我是python新手,我正在努力学习它。我一直在尝试制作一个简单的脚本,其中输入一个数字n,表示矩阵的行数和列数。在这之后,矩阵的对角线上应该有“*”和边上的“#”,其余的都是空白。 我一直在尝试这样的事情,但实际上并不奏效:

my_list=[]
n=int(input("please enter the number of lines and columns: "))
my_list[0][0:n-1]="#"
my_list[n-1][0:n-1]="#"
my_list[0:n-1][0]="#"
my_list[0:n-1][n-1]="#"
my_list[i in range(1,n-2)][j in range(1,n-2)]="*"
print (my_list)
我希望它看起来像这样:

n=5
#####
#* *#
# * #
#* *#
#####
任何帮助都将不胜感激


另外,我曾多次尝试在网上搜索解决方案,但很多人都在使用numpy。我希望以普通方式进行搜索,这样我就可以先学习基础知识。

您将列表视为numpy数组,并试图一次分配多个切片。为了简单起见,只需创建一个空的NxN列表,并以对称方式填写所需的单元格

n = 5
my_list = [[' ' for _ in range(n)] for _ in range(n)]

for i in range(n):
    my_list[i][i]    = '*'     # primary diagonal
    my_list[i][-i-1] = '*'     # secondary diagonal  

    my_list[0][i]    = '#'     # first row
    my_list[-1][i]   = '#'     # last row
    my_list[i][0]    = '#'     # first column
    my_list[i][-1]   = '#'     # last column 

这是每次迭代的输出

#   #
     
     
     
#    

python列表分配与numpy分配不同<代码>我的列表[0:n-1][0]不选择“第一列”,它与选择第一行的
我的列表[0]
相同。
#   #
     
     
     
#    
##  #
#* *#
     
     
##   
### #
#* *#
# * #
     
###  
#####
#* *#
# * #
#* *#
#### 
#####
#* *#
# * #
#* *#
#####