python - 理解将月份名称映射到其数值的字典
问题描述
我正在尝试创建一个字典,将月份名称映射到它们的特定数值(Jan->1、Feb->2 等),使用
month_dict = {k:v+1 for v,k in enumerate(['Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'])}
然而,而不是返回正确的数值5
,
print(month_dict['May'])
抛出一个 KeyError。
怎么了?
解决方案
您正在迭代一个元素,即整个逗号分隔的字符串。您需要用逗号分隔字符串:
>>> month_dict = {k:v+1 for v,k in
enumerate('Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','))}
>>> print(month_dict['May'])
5
您的方法提供了以下字典:
{'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec': 1}
所以你可以看到,它的键是'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'
,没有单独的键,命名为May
。
推荐阅读
- python - Update only fields with text using ModelForm
- c# - C#获取bool类型的所有属性的值和名称
- regex - Visual Studio Code - 删除包含条件的行
- python - 如何遍历pandas列并将单元格替换为下一行的信息
- apache - 配置 CSP 和 iframe 有什么问题
- angular - 在 angular.json 中扁平化资产
- python - 是否可以在一定时间后停止 Python 中的 exec 或 eval ?
- python - 如何使用 python 从 Maya 内部搜索外部文件结构
- python - 在 Pandas 中将特定列的行除以 date+n
- java - 在Java中的循环内替换字符串中特定位置的字符