Python 映射字典

标签 python dictionary

假设我有一些包含月份短名和一些数据的字典

data_in = {"Jan":2.0, "Feb":5.5} 

以及一些包含映射的字典

month_names = {"Jan":"January", "Feb":"February"}
day_month = {day:"Jan" for day in range(1,32)}
day_month.update({day:"Feb" for day in range(32,60)})

如何获取以下包含原始数据(长名称和日期数字作为元组)的字典?

{("January", 1):2.0, ("January", 2):2.0 ...}

最佳答案

这是我自己的尝试 -

from itertools import count
c = count(1,1)
days = {"Feb" : 28, "Jan" : 31}

mapping = {(month_names[i], next(c)) : data_in[i]  for i in data_in.keys()  for _ in range(days[i])}

print (mapping)

或使用您的day_month字典

mapping = {(month_names[day_month[i]], i) : data_in[day_month[i]] for i in day_month.keys()} 

print mapping 

输出 -

{('January', 1): 2.0,
 ('January', 2): 2.0,
 ('January', 3): 2.0,
 ('January', 4): 2.0,
 ('January', 5): 2.0,
 ('January', 6): 2.0,
 ('January', 7): 2.0,
 ('January', 8): 2.0,
 ('January', 9): 2.0,
 ('January', 10): 2.0,
 ('January', 11): 2.0,
 ('January', 12): 2.0,
 ('January', 13): 2.0,
 ('January', 14): 2.0,
 ('January', 15): 2.0,
 ('January', 16): 2.0,
 ('January', 17): 2.0,
 ('January', 18): 2.0,
 ('January', 19): 2.0,
 ('January', 20): 2.0,
 ('January', 21): 2.0,
 ('January', 22): 2.0,
 ('January', 23): 2.0,
 ('January', 24): 2.0,
  ..... }

关于Python 映射字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42539763/

相关文章:

javascript - 在 Javascript 中实现 String 到 Int 的映射

c++ - 如何检查 map 中是否存在匹配项?

c# - 在 Dictionary<DateTime, double> 中查找最接近的 DateTime 键

python - 如何使用 python 或 scala 将非标准 csv 文件读入数据框

python - 蓝牙错误(11、资源暂时不可用)

python - 如何报告 Python UDF(针对 Pig)的进度?

python - 如何处理 Keras 中超长的卷积序列内存大小?

C++/JNI 大括号括起来的初始化程序映射 (Android NDK)

c# - C# 中的字典类 - 两个对象的相等性

python - 如何内省(introspection) Cython C 扩展模块中定义的函数