Python 搜索嵌套列表

Python Search Nested Lists

如果我有一个嵌套列表列表,在特定索引处搜索包含特定变量的子列表的最简单方法是什么?例如,如果我有一个如下所示的列表;

mylist = ['aa',1,2,['bb',33],3,['bb',55],56,27,['cc',2],['bb',2,['bb',4]],4,['dd',5,7]]

在该列表中搜索索引 0(列表中的第一项)中具有 'bb' 的列表的首选 pythonic 方法是什么?我希望看到结果;

['bb',33],['bb',55],['bb',2,['bb',4]],['bb',4] 

递归在这里工作得很好,使用 __class__ 魔术成员也是如此:

def recursive_match(the_list):
    index = 0

    for item in the_list:
        print(repr(item))

        if item.__class__ is list:
            recursive_match(item)
        elif index == 0 and item == 'bb':
            print('match')

        index += 1

mylist = ['aa',1,2,['bb',33],3,['bb',55],56,27,['cc',2],['bb',2,['bb',4]],4,['dd',5,7]]
recursive_match(mylist)

你应该尝试使用递归函数

def list_search(slist):
     for count, item in enumerate(slist):
         if(item.__class__ is list):
             list_search(item)
         else:
             if(count == 0 and item == 'bb'):
                 print(slist)

这应该用于独立于深度的嵌套。

def findList(L, argument, index):
    if L[index] == argument:
        print L
    for element in L:
        if type(element) == list:
            findList(element, argument, index)

这也可能有效,使您能够选择要搜索的参数和索引。不过思路当然是用递归了。