对于Python3
来说相当陌生。
我有两个由两个单独的 CSV
文件构建的字典。
第一本字典看起来像这样:
dict_FET = {2658451: "6.67e-05", 2565843: "1.513-05", etc....}
第二个字典是一个类似的键;值配对,但键是一个整数范围。
dict_FST = {range(2500000, 2600000): '0.924', range(2600000, 2800000): '.0694', etc..}
我希望将两个字典中的值组合到一个数组中,保留第一个字典中的键。因此,在上面的示例中,我想要的字典如下所示:
dict_combined = {2565843: ['1.513e-05', '0.694'], 2658451: [6.67e-05,'0.924',], etc....
我想我需要构造一个循环,并尝试了类似的方法
dict_combined = {k: [dict_FET.get(k), dict_FST.get(k)] for k in keys if keys in range dict_FST.keys()}
语法显然不正确,但我是正确的道路吗?
最佳答案
这是我能想到的最有效的受孕方法。考虑到您希望收集数据的方式,字典理解似乎不可行,因此需要多几行才能完成。
dict_FET = {2658451: "6.67e-05", 2565843: '1.513e-05'}
# Note: The following range values were scaled by 10x so there would be results.
dict_FST = {range(2500000, 2600000): '0.924', range(2600000, 2800000): '.0694'}
dict_combined = {}
for key, value1 in dict_FET.items():
dict_combined.setdefault(key, [value1]).extend(
value2 for interval, value2 in dict_FST.items() if key in interval)
print(dict_combined)
输出:
{2658451: ['6.67e-05', '.0694'], 2565843: ['1.513e-05', '0.924']}
关于python - 组合两个字典,其中字典一个键是整数范围,第二个字典键是可能落入第一个键范围的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46958314/