Python程序来测试行的长度是否按递增顺序排列
给定一个矩阵,以下程序用于测试矩阵的所有行的长度是否按递增顺序排列。如果是,则返回 True,否则返回 False。
Input : test_list = [[3], [1, 7], [10, 2, 4], [8, 6, 5, 1, 4]]
Output : True
Explanation : 1 < 2 < 3 < 5, increasing lengths of rows, hence True.
Input : test_list = [[3], [1, 7], [10], [8, 6, 5, 1, 4]]
Output : False
Explanation : 1 <2 >1 < 5, Non-increasing lengths of rows, hence False.
方法 1:使用循环和len()
在这里,我们使用循环来检查下一行的长度是否大于当前行,如果不是,则将结果标记为关闭。
Python3
# initializing list
test_list = [[3], [1, 7], [10, 2, 4], [8, 6, 5, 1, 4]]
# printing original list
print("The original list is : " + str(test_list))
res = True
for idx in range(len(test_list) - 1) :
# flag off in case next length is not greater
# than current
if len(test_list[idx + 1]) <= len(test_list[idx]):
res = False
break
# printing result
print("Are rows of increasing lengths ? : " + str(res))
Python3
# initializing list
test_list = [[3], [1, 7], [10, 2, 4], [8, 6, 5, 1, 4]]
# printing original list
print("The original list is : " + str(test_list))
# checking for truth for all rows in matrix
res = all(len(test_list[idx + 1]) > len(test_list[idx]) for idx in range(len(test_list) - 1))
# printing result
print("Are rows of increasing lengths ? : " + str(res))
输出:
The original list is : [[3], [1, 7], [10, 2, 4], [8, 6, 5, 1, 4]]
Are rows of increasing lengths ? : True
方法 2:使用all()和列表推导式
在这里,我们使用 len() 测试下一个长度是否大于当前长度,all() 用于检查所有行。
蟒蛇3
# initializing list
test_list = [[3], [1, 7], [10, 2, 4], [8, 6, 5, 1, 4]]
# printing original list
print("The original list is : " + str(test_list))
# checking for truth for all rows in matrix
res = all(len(test_list[idx + 1]) > len(test_list[idx]) for idx in range(len(test_list) - 1))
# printing result
print("Are rows of increasing lengths ? : " + str(res))
输出:
The original list is : [[3], [1, 7], [10, 2, 4], [8, 6, 5, 1, 4]]
Are rows of increasing lengths ? : True