我有一个python
dict
格式如下:
for (itemA, itemB) in items.keys():
Do_something_with(itemA, itemB)
itemA
有许多itemB
与之相关,但它是不确定的。例如,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)
我可以想出一些方法来做这件事,这是可怕的昂贵的计算,但我觉得有一个更python和/或有效的方法来做这件事。这是一个非常昂贵的方法
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)
但我知道那很可怕。你知道吗
你可以这样做:
这将遍历字典的所有键以及这些键处的所有项。你知道吗
您可以使用
sorted
和itertools.groupby
将相关项有效地组合在一起。你知道吗以下是可能的替代方案:
使用itertools.groupby对相关键进行分组:
类似的方法,不使用itertools.group_by,是自己发现组
相关问题 更多 >
编程相关推荐