繁体   English   中英

如何在还包含整数的列表中找到最小的子列表

[英]How to find smallest sub-list in a list of list that also includes integers

基本上,我有一个大小为 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 不是列表时代码不起作用。 我将如何做到这一点,以便函数将拼图 [i][j] 的长度与 j-2 进行比较(如果 j-1 和 j-2 也不是列表,则为 3 等。)

编辑:并且由于行在板上,因此我喜欢代码返回行和列的索引。

尝试像这样使用min的 key 属性

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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM