【问题标题】:how to get a matrix from user then put it into a 2d list如何从用户那里获取矩阵然后将其放入二维列表
【发布时间】:2023-02-04 22:47:19
【问题描述】:

我想知道如何从用户那里获取一些信息(显然是矩阵),然后将所有这些数字放入二维列表中? 所以我知道可能有预先编写的功能可以做到这一点,但我想自己做!

此处的代码和描述是我的工作,显然行不通!!!!!!

描述:程序要求用户以这种形式输入矩阵:a a a;a a a;a a a; 其中'a'是任意数字,';'连续结束的点! 几乎就像我们在 matlab 中分配矩阵一样!

我的目标代码:

str = input("Enter a numerical squence: ")
print(len(str))
index_counter = 0
matrix = []
while index_counter < len(str) :
    rows = []
    while str[index_counter] != ";":
        if str[index_counter] == " ":
            index_counter += 1
        else:
            rows.append(int(str[index_counter]))
            index_counter += 1
    matrix.append(rows)   
print(matrix)

【问题讨论】:

标签: python list


【解决方案1】:

解决方案:

rows = int(input('number of rows: '))
cols = int(input('number of columns: '))

matrix = []

for i in range(0, rows):
    matrix.append([])
    for j in range(0, cols):
        matrix[i].append(input(':: '))
        
print (matrix)

【讨论】:

    【解决方案2】:

    为什么在循环中使用不必要的循环,只使用 split 方法将字符串按分隔符拆分为列表?

    首先将整个字符串拆分为 1d 列表 ';'然后通过使用''拆分每个列表元素到子列表

    #getting input from user
    inpt=str(input('enter matrix'))
    
    #splitting string into 1D list of strings by ;
    Matrix=inpt.split(';')[:-1]
    
    #splitting substrings into sub list by ' '
    for i in range(0,len(x)):
        Matrix[i]=Matrix[i].split(' ')
    
    #display matrix
    print(Matrix)
    

    【讨论】: