Я знаю, что название немного сложно понять. Извините за это, позвольте мне объяснить. Например: у нас есть вложенный список, состоящий из 4 списков, каждый из которых состоит из 3 элементов, первые два являются строками ( не символ ), а третий - целым:
LLList = [ ["A", "B", 30], ["C", "B", 30], ["D", "B", 20], ["D", "L", 60] ]
Iхотите посчитать число или вернуть все индексы элементов в «LLList» (элементы в «LLList» - это списки из трех элементов, такие как [«A», «B», 30]), где третий элемент является наибольшим, гдеВторой элемент - «B».
Наивным способом было бы найти все элементы, чьи вторые элементы - «B», и поместить их в список. в этом случае будет:
TempList = []
for w in LLList
if w[1] == "B"
TempList.append(w)
Результат будет:
TempList = [ ["A", "B", 30], ["C", "B", 30], ["D", "B", 20] ]
Тогда найти максимальное значение среди 3-х элементов в TempList в этом случае будет 30
MaxB = max(TempList, key = lambda x:x[2])[2] # MaxB = 30
И посчитать вхождение MaxB в 3-й столбец TempList
[p[2] for p in TempList].count(MaxB)
В этом случае будет 2
Это слишком наивный метод, слишком много для кода,мне нужно слишком много оперативной памяти и времени, я это знаю, но я не могу придумать ничего лучше, чем это. Я знаю, что должен быть элегантный и эффективный способ решить эту проблему, пожалуйста, помогите мне, большое спасибо!