Рекурсивный поиск независимо от уровней подсписков
Поскольку для постера требуется:
этот список является динамическим c и может иметь более 3 списков внутри
def find(lst, t, result = None):
if not isinstance(t, list): # insure t is a list
t = [t]
if result is None: # Set default result
result = []
for sublist in lst: # outer list loop
if isinstance(sublist, list):
if sublist[:-1] == t:
result.append(sublist[-1])
return result
else:
find(sublist, t, result) # recursively check sublists
return result
x = [[['a', 5],
['b', 0.11],
['c', 0.85]],
[['a', 'b', 0.5],
['b', 'c', 1.0],
['c', 'a', 0.7]],
[['a', 'b', 'c', 0.9],
['b', 'c', 'a', 0.4],
['a', 'c', 'b', 1.0]],
[[
['a', 'a', 'c', 2], # additional level added
['x', 'a', 5]]]]
print(find(x, 'a')) # [5]
print(find(x, ['a', 'b'])) # [0.5]
print(find(x, ['a', 'b', 'c'])) # [0.9]
print(find(x, ['a', 'a', 'c'])) # [2]