基本上,我有一个大小为N的板(比方说4),其中最大的元素也是N。我需要找到每一行中最小列表的长度,如下面的示例所示:row = [[1, 2, 4], [1, 2, 4], 3, [1, 2]]应该返回1,2的长度和该子列表的索引,但它返回一个错误,因为3在它之前
我写了这篇文章
def full(puzzle):
min = 0
for i in range(len(puzzle)):
for j in range(1 ,len(puzzle)):
if isinstance(puzzle[i][j] , list):
if len(puzzle[i][j-1]) < len(puzzle[i][j]):
min = len(puzzle[i][j-1])
pos = (i , j-1)
return pos但是当j-1不是列表时,代码就不起作用了。我怎么做才能使函数将puzzlei的长度与j-2进行比较(如果j-1和j-2也不是列表,则为3)。
edit:因为row在板中,所以我希望代码同时返回行和列的索引。
发布于 2020-11-20 17:01:18
尝试使用min的键属性,如下所示
row = [[1, 2, 4], [1, 2, 4], 3, [1, 2]]
def func(item):
return len(item) if type(item)==list else 999
sublist=min(row,key=func)
print('index of smallest list=',row.index(sublist))
print('length of smallest list=',len(sublist))https://stackoverflow.com/questions/64925891
复制相似问题