我是编程新手,尤其是 Python。在这里,我尝试编写一个代码,从用户那里接收一个矩阵(写成列表的列表)并将这个字符串变成一个“真正的”列表:
def string_to_matrix(arg):
result = []
lines = arg.count("[") - 1
for i in range(lines):
result.append([])
count = 0
i = 2
while i <= len(arg):
if arg[i] == "[":
count += 1
i += 1
elif arg[i].isdigit():
new_number = 0
while arg[i].isdigit():
new_number = 10*new_number + int(arg[i])
i += 1
result[count].append(new_number)
return result
m_1 = string_to_matrix(raw_input("Type your first matrix in format [[x, y, ...],[z, ...],[...], ...]: "))
print m_1
但是在我输入一个矩阵(例如 [[1]] 或 [[1, 2], [3, 4]])之后,代码将永远循环并且永远不会打印任何内容。我做错了什么?
请您参考如下方法:
您的问题不清楚,所以只能检查下面的代码并查看它是否打印正确的输出。
def string_to_matrix(arg):
result = []
lines = arg.count("[") - 1
for i in range(lines):
result.append([])
count = 0
i = 2
while i < len(arg):
if arg[i] == "[":
count += 1
i=i+1
elif arg[i].isdigit():
new_number = 0
while arg[i].isdigit():
new_number = 10*new_number + int(arg[i])
i=i+1
result[count].append(new_number)
else:
i=i+1
return result
