【问题标题】:Search List-of-Lists within a List-of-Lists/LoL?在 List-of-Lists/LoL 中搜索 List-of-Lists?
【发布时间】:2019-12-27 05:17:54
【问题描述】:

假设我有 LoL,我希望能够找到在这个大 LoL 中是否可以找到子列表以及它出现了多少次。

这是一个英雄联盟的例子(它可能更大):

  [[[['a'], ['g']], [['g'], ['b']]], [[['g'], ['e']], [['e'], ['b']]], [[['f'], ['h']], [['g'], ['b']]], [[['g'], ['e']], [['g'], ['b']]], [[['e'], ['b']], [['g'], ['e']]]]

这里有一些我可以搜索的英雄联盟示例:

  [[['a'], ['g']], [['g'], ['b']]]

  [['a'], ['g']]

  ['a']

【问题讨论】:

  • LoL = 列表列表?
  • 是的,助手告诉我不要在问题标题中重复单词......这就是我放 LoL 的原因

标签: python list search


【解决方案1】:

我认为字符串包含检查应该足够了。

>>> l = [[[['a'], ['g']], [['g'], ['b']]], [[['g'], ['e']], [['e'], ['b']]], [[['f'], ['h']], [['g'], ['b']]], [[['g'], ['e']], [['g'], ['b']]], [[['e'], ['b']], [['g'], ['e']]]]
>>> str_l = str(l)
>>> str([[['a'], ['g']], [['g'], ['b']]]) in str_l
True
>>> str([['a'], ['g']]) in str_l
True
>>> str([[['a'], ['g']], [['x'], ['b']]]) in str_l
False

计数你可以使用str.count:

>>> str_l.count(str([['g'], ['b']]))
3

【讨论】:

  • 聪明,但它不计算匹配?可能是索引()!应该试试
  • @sten 你可以打电话给str.count,编辑答案,是的,你也可以使用index() 来获取它在哪些索引中找到了匹配项。
【解决方案2】:

您可以使用in检查搜索数据是否存在于List of Lists中:

lol = [[[['a'], ['g']], [['g'], ['b']]], [[['g'], ['e']], [['e'], ['b']]], [[['f'], ['h']], [['g'], ['b']]], [[['g'], ['e']], [['g'], ['b']]], [[['e'], ['b']], [['g'], ['e']]]]

search_data1 = [[['a'], ['g']], [['g'], ['b']]]

if search_data1 in lol:
    print(search_data1)
else:
    print('Not found!')

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    相关资源
    最近更新 更多