这是我的数据:你可以看到它是一个字典,有一个字符串键,然后有多个元组。我正在尝试编写一个查找函数,以便使用键字符串和toll字符串来查找值(float)
dict1 = {'20MAY17': [('TOLL2', 9817.73), ('TOLL3', 8395.49)], '23MAY17': [('TOLL2', 6497.36), ('TOLL4', 6827.51)], '13MAY17': [('TOLL4', 9803.42)], '5MAY17': [('TOLL3', 6677.66)], '16MAY17': [('TOLL4', 1565.78), ('TOLL3', 7949.97), ('TOLL2', 3739.91)], '12MAY17': [('TOLL2', 5680.84)], '6MAY17': [('TOLL2', 2420.46)], '28MAY17': [('TOLL3', 6405.19), ('TOLL4', 1358.27)], '22MAY17': [('TOLL4', 4022.52), ('TOLL3', 8823.13)], '11MAY17': [('TOLL4', 4832.2699999999995)], '27MAY17': [('TOLL3', 8878.97)], '17MAY17': [('TOLL4', 4150.74)], '3MAY17': [('TOLL3', 5729.33)], '24MAY17': [('TOLL4', 1452.02), ('TOLL1', 3860.73)], '8MAY17': [('TOLL1', 9863.36)], '18MAY17': [('TOLL1', 4584.25)], '15MAY17': [('TOLL1', 8640.64)]}
这本词典叫做dict1
这里是函数,我使用的是用户输入
def lookup(dict1, str1, str2):
print(dict1[str1][str2])
它应该这样做:
lookup(dict1, '20MAY17', 'TOLL2')
9817.73美元
lookup(dict1, '20MAY17', 'TOLL3')
8395.49美元
将数据结构转换为一个字典,其中值是字典而不是元组列表。在那之后,查找是微不足道的
如您所见,
lookup
函数有点不合理,您可以直接编写d_better[day][toll]
你可以把字典放在字典里。我建议您只需预处理您的数据(如果您的原始数据存储在
original_data
)然后,您可以简单地通过双项查找进行查找:
将函数更改为:
这是因为dict键在传递第二个键之前被转换为dict
相关问题 更多 >
编程相关推荐