如果我有一个嵌套列表列表,那么在特定索引中搜索包含特定变量的子列表的最简单方法是什么?例如,如果我有一个如下所示的列表;
mylist = ['aa',1,2,['bb',33],3,['bb',55],56,27,['cc',2],['bb',2,['bb',4]],4,['dd',5,7]]
在此列表中搜索具有&#bb'的列表的首选pythonic方法是什么?在索引0(列表中的第一项)?我希望看到结果;
['bb',33],['bb',55],['bb',2,['bb',4]],['bb',4]
答案 0 :(得分:2)
您应该尝试使用递归函数
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)
这应该用于独立于深度的嵌套。
答案 1 :(得分:0)
递归效果很好,就像使用__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)
答案 2 :(得分:0)
def findList(L, argument, index):
if L[index] == argument:
print L
for element in L:
if type(element) == list:
findList(element, argument, index)
这可能也有效,使您能够选择要搜索的参数和索引。但这个想法当然是使用递归。