所以我有这个python 3代码来输入矩阵:
matrix = []
lop=True
while lop:
line = input()
if not line:
lop=False
if matrix != []:
if len(line.split()) != len(matrix[-1]):
print("Not same length")
menu()
values = line.split()
row = [int(value) for value in values]
matrix.append(row)
但是,如果我输入
1 2 3
4 5 6 7
8 9 0 1 2
我的代码会让它通过,但您可以注意到第2行和第3行的长度与第1行的长度不同;怎么预防?该行必须与第1行的长度相同,否则必须返回错误消息,例如“行”不具有相同的长度。我不太清楚如何做到这一点。也许:
for row in matrix:
if len(row) == matrix[1]
pass
else:
print('not same length')
但它没有用。
由于
答案 0 :(得分:0)
使用内置len()
函数和break
语句。
matrix = []
lop =True
while lop:
line = input('Enter your line: ')
if not line:
lop=False
if matrix != []:
if len(line.split()) != len(matrix[-1]):
print("Not same length")
break
values = line.split()
row = [int(value) for value in values]
matrix.append(row)
运行如下:
bash-3.2$ python3 matrix.py
Enter your line: 1 2 3
Enter your line: 4 5 6
Enter your line: 7 8 9 0
Not same length
bash-3.2$
答案 1 :(得分:0)
如果你想匹配第一行长度,试试这个,
使用len(matrix[0])
for row in matrix:
if len(row) == len(matrix[0]):
pass
else:
print('not same lenght')
答案 2 :(得分:0)
(我知道这个问题很老了,但是...)
len(set(map(len,matrix))) == 1
说明:
map(len,matrix)
产生矩阵所有行的长度
set(...)
给出所有存在的行的唯一/不同长度。
最后,len(...) == 1
返回我们上面获得的是否包含 1 个单个元素,即所有行是否具有相同的长度。