【问题标题】:Python appending elements to a 2d array with user inputsPython将元素附加到带有用户输入的二维数组
【发布时间】:2021-05-27 06:34:16
【问题描述】:

所以我想要做的是在二维数组中生成一些带有用户输入的列表。我有这部分工作,我只是想让它通过用户输入为每个列表生成一定数量的数字。例如,如果用户输入的列表数量是 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()

【问题讨论】:

  • 你为什么要from array import *????
  • 为什么随机在这里做?您希望这些数字是随机的还是只是不同的?
  • 我希望数组中的实际数字是随机的
  • 他们是不是出于某种原因要使用array 而不是基本的Python list?随机生成的整数值的范围是多少?
  • 我只需要创建一个包含数组的二维数组,并能够通过用户输入来控制数量

标签: python list multidimensional-array


【解决方案1】:

如果我是正确的,你只是想创建一个基于输入大小的随机矩阵,所以你应该没问题:


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】:

    可能有比我建议的更好的方法来做到这一点,但我认为它应该可行。

    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)
    

    【讨论】:

      【解决方案3】:

      您应该使用标准的 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 范围内的随机值。

      rows = 5, cols = 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)
      

      rows = 5, cols = 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]]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-29
        • 2020-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多