所以我想要做的是用用户输入在二维数组中生成一些列表。我让那部分工作我只是想让它通过用户输入为每个列表生成一定数量的数字。例如,如果列表数量的用户输入是 10,而每个列表数量的用户输入是 8,那么我应该有一个包含 10 个列表的输出,每个列表中有 8 个不同的数字。 这是我的代码:
from array import *
import random
array= []
arrayInput = int(input("please input the number of arrays:"))
amountInput = int(input("please enter how many numbers per array"))
for i in range(arrayInput):
array.insert(1, ):
print("Array after appending of the elements: ")
for x in array:
for y in x:
print(y,end = " ")
print()
答案 0 :(得分:0)
可能有比我提议的更好的方法,但我认为它应该有效。
import numpy as np
import random
arrayInput = int(input("please input the number of arrays: \n"))
amountInput = int(input("please enter how many numbers per array: \n"))
arr = np.empty((arrayInput, amountInput))
for i in range(arrayInput):
for j in range(amountInput):
arr[i][j] = random.randint(0,9)
print(arr)
答案 1 :(得分:0)
如果我是对的,你只是想创建一个基于输入大小的随机矩阵,所以你应该没问题:
import numpy as np
arrayInput = int(input("please input the number of arrays:"))
amountInput = int(input("please enter how many numbers per array"))
arr = np.arange(arrayInput * amountInput).reshape(arrayInput, amountInput)
或者有什么特别的理由来创建一个数组对象?我的理解是数组对象不处理嵌套列表或二维对象。
答案 2 :(得分:0)
您应该使用标准 Python list
。二维“数组”可以实现为列表列表,但使用 array.array()
无法实现。
以下是如何使用列表推导式生成包含 0 到 100 之间随机整数的列表列表:
import random
rows = int(input("please input the amount of arrays: "))
cols = int(input("please enter how many numbers per array: "))
array = [[random.randint(0, 100) for _ in range(cols)] for _ in range(rows)]
print(array)
这会生成 0-100 范围内的随机值。
行 = 5,列 = 6 的示例输出:
[[74, 93, 96, 67, 10, 27], [69, 73, 12, 47, 11, 1], [25, 11, 11, 87, 4, 93], [14, 68, 88, 62, 80, 43], [12, 7, 56, 92, 100, 20]]
或者你可以使用 numpy:
import numpy as np
array = np.random.randint(101, size=(rows, cols))
print(array)
行 = 5,列 = 6 的示例输出:
[[58 72 67 64 20]
[64 48 56 18 13]
[12 48 20 83 25]
[98 49 81 32 11]
[83 45 81 68 17]
[38 77 17 71 99]]