У меня есть python
dict
, который имеет следующий формат:Эффективный способ петли через python dict?
for (itemA, itemB) in items.keys():
Do_something_with(itemA, itemB)
itemA
имеет много itemB
«S, связанные с ним, но он не является детерминированным. Например, один экземпляр itemA
может иметь 10 itemB
«с, а другой экземпляр itemA
может только 1.
Я хотел бы Переберите массив, как что-то вроде:
thing = 0
for (itemA, ~) in items.keys()[0]:
for itemB in all_items_associated_with(itemA):
thing += function_on(itemA, itemB)
Я могу прийти с некоторыми способами сделать это, которые ужасно дороги вычислительно, но я чувствую, что есть более питонический и/или эффективный способ сделать это. Вот ужасно дорогой метод
thing = 0
itemAs = find_all_itemAs(items)
for itemA in itemAs:
for (itemAtmp, itemB) in items.keys():
if(itemAtmp == itemA):
thing += function_on(itemA, itemB)
но я знаю, что это довольно ужасно.
Значит, ключи являются кортежами? –
Что случилось с 'for (itemA, itemB) в items.keys()'? (Помимо ненужных круглых скобок и вызова 'keys'.) – user2357112
предоставьте [MCVE] (http://stackoverflow.com/help/mcve) – Pynchia