python - 组合两个字典,其中字典一个键是整数范围,第二个字典键是可能落入第一个键范围的整数

标签 python python-3.x dictionary range

对于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/

相关文章:

python - 字典按键长排序

ios - 如何将 NSURLRequest 的 HTTPBody 参数检索到字典 : [NSObject: AnyObject] in Swift

python - 如何从 Python2.x 中的 unicode 字符串中删除转义字符(转义 unicode 字符)?

python - 当尺寸不匹配时,将第一个添加到 python 列表中

python - 调用 sys.exit() 后不触发 atexit

python - 如何使用处理时间过长的巨大匹配关键字文件?

java - 侧向卷轴上使用什么瓷砖存储结构?

PYTHON readlines() - 无法访问更大列表中的列表

python - 为什么 OrderedDict 的值不相等?

python - 为什么时间错误地报告这么快的时间?