编写Python程序,通过Python控制台输入一个大于1的整数n,然后产生一个二维列表。二维列表的尺寸是n*n。每一个列表元素的值从1到n*n,依次排列。使用五种方法
时间: 2024-03-14 12:47:08 浏览: 52
好的,下面我将为您提供五种不同的方法来生成一个n x n的二维列表,每个列表元素的值从1到nn,依次排列。
方法一:使用嵌套循环
```python
n = int(input("请输入一个大于1的整数n:"))
# 创建一个n x n的矩阵
matrix = [[0 for i in range(n)] for j in range(n)]
# 填充数字
num = 1
for i in range(n):
for j in range(n):
matrix[i][j] = num
num += 1
# 打印结果
for row in matrix:
print(row)
```
方法二:使用列表推导式
```python
n = int(input("请输入一个大于1的整数n:"))
# 创建一个n x n的矩阵,并填充数字
matrix = [[i*n+j+1 for j in range(n)] for i in range(n)]
# 打印结果
for row in matrix:
print(row)
```
方法三:使用numpy库
```python
import numpy as np
n = int(input("请输入一个大于1的整数n:"))
# 创建一个n x n的矩阵,并填充数字
matrix = np.arange(1, n*n+1).reshape(n, n)
# 打印结果
print(matrix)
```
方法四:使用itertools库
```python
import itertools
n = int(input("请输入一个大于1的整数n:"))
# 创建一个n x n的矩阵,并填充数字
nums = itertools.count(1)
matrix = [[next(nums) for j in range(n)] for i in range(n)]
# 打印结果
for row in matrix:
print(row)
```
方法五:使用numpy和meshgrid函数
```python
import numpy as np
n = int(input("请输入一个大于1的整数n:"))
# 创建一个n x n的矩阵,并填充数字
x, y = np.meshgrid(np.arange(n), np.arange(n))
matrix = y*n + x + 1
# 打印结果
print(matrix)
```
这五种方法都可以生成一个n x n的二维列表,每个列表元素的值从1到nn,依次排列。您可以根据自己的需要选择其中一种方法来使用。
阅读全文