从嵌套列表/元组创建多输入字典

Creating multi-input dictionary from nested lists / tuple

我有这个数据,它是一个包含嵌套元组和列表的列表: ('String' 的内部列表,Int 将始终包含 2 个项目,但是元组大小将在 1-5 之间变化。

[([['Ask_Avg_Volume', '59.54232542215611'], ['Avg_Order_Insert_Size', '7.103393918685546'], 
['Avg_Order_Insert_Size', '39.40988005748331']],)]

并且想从数据中创建一个字典,它看起来应该是这样的:

{Ask_Avg_Volume, 59.54232542215611: 1,
Avg_Order_Insert_Size, 7.103393918685546: 1,
Avg_Order_Insert_Size, 39.40988005748331: 1}

我怎样才能做到这一点?我想统计同一个string+int出现的次数,同时创建一个多输入(string+int)字典。

您可以先遍历外部列表。然后将 in-turn 包含列表的元组一一解包。然后是遍历该循环的部分。然后由于内部循环只包含两个项目,我们可以将它们分别解压为 si 字符串和整数。然后我们必须制作组合键以保持标识符的唯一性。然后我们检查该组合键是否存在于我们的字典中,如果它确实增加了计数,否则将其初始化为 1。

这是实现此算法的 python 示例函数

def sol(items):
    a = dict()
    for tuple_row in items:
        for column in tuple_row:
            for group in column:
                [s, i] = group
                combined = '%s,%s' % (s, i)
                if combined in a:
                    a[combined] += 1
                else:
                    a[combined] = 1
    return a