Эффективный способ найти первое появление элемента в словаре наборов [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Эффективный способ найти первое появление элемента в словаре наборов [закрыто]

Сообщение Anonymous »

данный - словарь списков, которые содержат наборы. Как бы эффективный способ найти соответствующий ключ самого первого появления элемента в наборе? Это должно быть сделано для всех уникальных элементов, которые находятся в словаре. [] .
Положение набора в списке не имеет отношения. Только ключ представляет интерес. < /Li>
Словарь сортируется в порядке возрастания по его значению ключа. < /Li>
Словарь следует искать в порядке возрастания. Я прошу более эффективного способа. Более эффективные средства не наивно используют некоторые циклы, а применяют встроенные функции или питонические методы. Ответ будет заключаться в том, что для ключа 343 Этот элемент появляется первым в d . Это повторяется для всех значений в наборах d .
d={
100: [{406, 491, 440, 448},{590, 633, 560, 564, 651, 681}],
343: [{366, 412, 440}, {448, 491, 510}, {557, 560, 544, 564, 633, 681}],
423: [{440, 448, 491, 510, 544, 557, 564, 681}],
433: [{412, 440, 448, 491},{536, 544, 510, 557, 560, 564}],
493: [{1286, 1285, 1357}]
}

Что я попробовал
Это рабочее решение. Это наивно использует 3 петли. < /P>
first_appearance = {}

for key, sets in d.items():
for s in sets:
for element in s:
if element not in first_appearance:
first_appearance[element] = key

# Display the result
print("[element,key]")
for element, key in first_appearance.items():
print(f"[{element},{key}], ",end="")
< /code>
output: < /p>
[element,key]
[440,100], [491,100], [406,100], [448,100], [560,100], [633,100], [564,100], [681,100], [651,100], [590,100], [412,343], [366,343], [510,343], [544,343], [557,343], [536,433], [1285,493], [1357,493], [1286,493],


Подробнее здесь: https://stackoverflow.com/questions/795 ... ry-of-sets
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»