说我有两个清单,例如:

NestedLst = ['1234567', 'abc456789', ['cde678945']]
SearchLst = ['123', 'cde']

如何在嵌套列表中搜索与搜索列表中任何项的任何部分匹配,并为每个搜索项返回子集列表。 因此,在这种情况下,我希望输出为:

['1234567', 'abc456789', ['cde678945']] and ['cde678945'] 

我已尝试执行以下操作:

    indices = []

for eachItem in SearchLst:
    for i, elem in enumerate(NestedLst):
        if eachItem in elem:
            indices.append(i)

print indices

但这总是返回[0] 任何帮助将非常感激。 由于我是Python新手,因此对代码的完整说明对我的学习非常有帮助。

谢谢

下面是实践中的嵌套列表示例:

[['BMNH833953:0.16529463651919140688', [[['BMNH833883:0.22945757727367316336', ['BMNH724182a:0.18028180766761139897', ['BMNH724182b:0.21469677818346077913', 'BMNH724082:0.54350916483644962085'], ':0.00654573856803835914'], ':0.04530853441176059537'], ':0.02416511342888815264', [[['BMNH794142:0.21236619242575086042', ['BMNH743008:0.13421900772403019819', 'BMNH724591:0.14957653992840658219'], ':0.02592135486124686958'], ':0.02477670174791116522', 'BMNH703458a:0.22983459269245612444'], ':0.00000328449424529074', 'BMNH703458b:0.29776257618061197086'], ':0.09881729077887969892'], ':0.02257522897558370684', 'BMNH833928:0.21599133163597591945'], ':0.02365043128986757739', 'BMNH724053:0.16069861523756587274'], ':0.0;\n']

===============>>#1 票数:1 已采纳

您可以使用方法和递归来做到这一点:

NestedLst = ['1234567', 'abc456789', ['cde678945']]
SearchLst = ['123', 'cde']

def get_list(a,b):
    for i in b:
        if type(i)==list:          #if this is a nested list, do the same function for the contents of that list, returning that list if it meets the conditions.
            return get_list(a,i)
        elif a in i:               #if element in list is not a nested list, just do normal check for containment using in
            return b
    return []

x = [get_list(i,NestedLst) for i in SearchLst]  #just calls the function for all search terms

for k in x:
    print k

[OUTPUT]
['1234567', 'abc456789', ['cde678945']]
['cde678945']

  ask by PaulBarr translate from so

未解决问题?本站智能推荐:

3回复

给定列表列表,找到列表的索引,其中包含Python中的特定项

例如,我有一个列表列表: 给定元素3,我需要它所属列表的索引,即1。 列表具有互斥的元素。
4回复

嵌套列表的嵌套列表

我有一个包含主密钥和列表列表的列表,其中每个封闭列表的第一个值(如'key_01' )应该是相应值的子键(如'val_01', 'val_02' )。 数据显示在这里: 我希望将这些列表组合成字典字典,如下所示: 到目前为止我得到的是子词: 正如预期的那样,它会输出一本
2回复

检查包含列表,元组的子列表中是否存在列表

我有一个包含子列表的列表,而子列表包含其他列表和元组,类似这样 我想搜索子列表中是否存在[2,2]并打印包含[2,2]子列表的索引。 例如。 包含[2,2]的子列表为0 。 我尝试使用以下代码,但是它以递增的方式提供了所有元素。 请提出一些替代方案!
1回复

从嵌套在列表中的字典中读取

目前,我有一个文件,用于加载一个由两个列表填充的JSON文件(上方)。 这些项目都是由5个项目组成的字典。 我正在尝试从两个列表中列出“问题”及其索引。 现在,我正在使用enumerate()来执行此操作,唯一的事情是它在“问题”中列出了字符串的每个字符,而不是从列表1和列表2中列出
1回复

写到嵌套列表中的多个位置?

嗨,我在以下代码中遇到了一个非常奇怪的问题: 具体在行 我的直觉是,这只会写入到blocklist_t中索引为0的列表中(因此,在我的情况下为4的第一个),而其他的则不予处理。 但是,它将相同的值写入: 0,k1 1,k1 2,k1 3,k1
2回复

如何在python中搜索列表并打印我的条件所在的列表中的哪个位置?

我正在生成一个包含12个随机数的列表: 然后我想搜索“nums”中的特定数字,比如“12”并使用if语句打印,如果它出现在列表中的哪个位置。 像这样的东西: 在这种情况下,'newNums'是我列出的位置列表,其中'12'在'nums'列表中。 我尝试了几个不同的东西,一
4回复

在python中,给定列表列表,如何识别匹配元素的索引?

给出像at_the_zoo这样的列表列表,如何找到老虎所在的列表? 例如,我可以在动物列表中找到老虎,如果我使用枚举,它会告诉我它在索引3处。我怎么知道它是列表at_the_zoo的元素1的一部分。 寻找鸭子会告诉我元素0等 谢谢!
3回复

如果列表中的项目符合条件,请删除该项目和多个先前的项目

我正在寻找一种方法,以消除每个第n个元素(我们称之为该项目i )在列表中, 并且还X项目的数量直接之前i在列表中,如果i满足的条件。 我一直在研究列表推导和迭代,但是对于新手来说,找到解决方案非常棘手。 例: 对于每一个第三个项目,检查i == "wrong" :如果是这样,
1回复

按索引从列表中选择,但将其他关联项目保留在列表中

如果我有2dlist这样的点... 例如, '-1','1'是x,y坐标(最后2列),我想只显示列表的一部分,其索引是这样的... ...因此用户可以通过索引号选择其中一个作为起点。 我想我可以这样列举... 但是,一旦我要求用户选择一个即。 用户选择'0'并设置变量
3回复

枚举列表中的列表

我约会时发生的事件发生在日期。 我想在显示日历时枚举事件列表。 此外,我需要能够从列表中删除一个事件。 我以为这会让我访问日期下的辅助列表并枚举它但我收到错误。 示例: