【问题标题】:How to input element in 2d array如何在二维数组中输入元素
【发布时间】:2018-03-03 00:10:42
【问题描述】:

就像下面的 C++ 代码一样,我如何使用 Python 在二维数组中输入元素?请帮助在 Python3 中编写相同的程序。

int main()
{
 int s = 3;
 int a[s][s];
 cout<<"Enter 9 Element in Square Matrix";
 for(int i =0;i<s;i++)
 {
  for(int j =0; j<s;j++)
  {
   cin>>a[i][j];
  }
 }
 cout<<"You Entered";
 for(int i =0;i<s;i++)
 {
  for(int j =0; j<s;j++)
  {
   cout<<a[i][j]<<"\t";
  }
 cout<<endl;
 }
return 0;
}
Output:
Enter 9 Elements in Square Matrix
1
2
3
4
5
6
7
8
9
You Entered: 
1 2 3
4 5 6
7 8 9

如果程序有错误,请不要试图纠正。 谢谢。

【问题讨论】:

标签: python python-3.x matrix multidimensional-array input


【解决方案1】:

我将使用list 将二维数组存储在这里。您可以使用许多其他结构来存储 2D 数组,但对于基本需求,这就足够了。

n=int(input("Enter N for N x N matrix : "))         #3 here
l=[]                                                #use list for storing 2D array

#get the user input and store it in list (here IN : 1 to 9)
for i in range(n): 
  row_list=[]                                      #temporary list to store the row
  for j in range(n): 
     row_list.append(int(input()))                 #add the input to row list
  l.append(row_list)                               #add the row to the list

print(l)
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

#Display the 2D array
for i in range(n):
  for j in range(n):
    print(l[i][j], end=" ")
  print()                                           #new line

'''
1 2 3 
4 5 6 
7 8 9 
'''

【讨论】:

  • 如何通过调用特定元素的索引来打印特定元素?
  • 抱歉,没听懂。你问如何访问二维列表中的数据?如果是这样,就像您在 C 中所做的那样。就像这里 print(l[0][0]) 将给 1
【解决方案2】:
s = 3
a = [x[:] for x in [[0] * s] * s]

print("Enter 9 Element in Square Matrix")

for i in range(0, s):
    for j in range(0, s):
        a[i][j] = input()

print("You Entered")

for i in range(0, s):
    line = ''
    for j in range(0, s):
        line += a[i][j] + ' '
    print(line)

【讨论】:

  • 为什么使用 2 行?
  • 因为 print 具有内置换行符,我想在同一行中打印所有这些。另一种方法是导入 sys 并使用 sys.stdout.write()
【解决方案3】:

如果您不熟悉python,您应该创建一个文件,例如,ma​​trix.py,然后添加以下内容:

matrix_size = 3
matrix = []

print("Enter {} Elements in Square Matrix:".format(matrix_size))
for i in range(0, matrix_size):
    row = []
    for j in range(0, matrix_size):
        row.append(input())
    matrix.append(row)

print("You entered:")
for i in range(0, matrix_size):
    print(" ".join(matrix[i]))

保存文件后,可以这样执行这个文件:

python3 matrix.py

这是一个示例输出:

[martin@M7 tmp]$ python3 matrix.py
Enter 3 Elements in Square Matrix:
1
2
3
1
2
3
7
5
4
You entered:
1 2 3
1 2 3
7 5 4

【讨论】:

  • 谢谢,但为什么你把 0 放在 Range 中?
  • range(0, n) 返回以下集合中的所有值:{0, 1, 2, ... n-1}。数组(和矩阵)从位置 0 开始。因此,在 range(0, 9) 中迭代将为您提供 {0, 1, 2, 3, 4, 5, 6, 7, 8} 中的值您要在示例中使用的 9 位置。
【解决方案4】:

假设你要创建一个 3*3 矩阵:

如下初始化矩阵:

matrix = [x[:] for x in [[0] * 0] * 0]

然后将矩阵元素作为用户的输入:

    for i in range(0,3):
        row_list = []
        for j in range(0,3):
            row_list.append(int(input()))
        matrix.append(row_list)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-05
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    相关资源
    最近更新 更多