从嵌套列表/元组创建多输入字典
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 包含列表的元组一一解包。然后是遍历该循环的部分。然后由于内部循环只包含两个项目,我们可以将它们分别解压为 s
和 i
字符串和整数。然后我们必须制作组合键以保持标识符的唯一性。然后我们检查该组合键是否存在于我们的字典中,如果它确实增加了计数,否则将其初始化为 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
我有这个数据,它是一个包含嵌套元组和列表的列表: ('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 包含列表的元组一一解包。然后是遍历该循环的部分。然后由于内部循环只包含两个项目,我们可以将它们分别解压为 s
和 i
字符串和整数。然后我们必须制作组合键以保持标识符的唯一性。然后我们检查该组合键是否存在于我们的字典中,如果它确实增加了计数,否则将其初始化为 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