在列表列表/ LoL中搜索列表列表?

时间:2019-12-27 05:17:54

标签: python list search

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

这是LoL的一个示例(可能更大):

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

这是我可能正在搜索的LoL的一些示例:

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

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

  ['a']

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以使用in来检查列表中是否存在搜索数据:

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!')