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)
这也可能有效,使您能够选择要搜索的参数和索引。不过思路当然是用递归了。
如果我有一个嵌套列表列表,在特定索引处搜索包含特定变量的子列表的最简单方法是什么?例如,如果我有一个如下所示的列表;
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)
这也可能有效,使您能够选择要搜索的参数和索引。不过思路当然是用递归了。