我试图为dateutil.rrule.weekday对象列表生成一个人性化的字符串表示。为此,我尝试创建一个字典WEEKDAY_TO_NAME
,将对象映射到它的字符串表示形式:
import dateutil.parser
from dateutil.rrule import weekdays as WEEKDAYS
WEEKDAY_NAMES = [name[1] for name in dateutil.parser.parserinfo.WEEKDAYS]
WEEKDAY_TO_NAME = dict(zip(WEEKDAYS, WEEKDAY_NAMES))
然而,这会导致
TypeError: unhashable type: 'weekday'
有没有什么方法可以绕过这个问题(不用写七个if
/elif
语句)?你知道吗
在Python3中,需要将
WEEKDAYS
中的项转换为字符串:注意转换前
WEEKDAYS
中的type()
项是'dateutil.rrule.weekday'
:(感谢hascode55和MSeifert指出我之前的
tuple()
调用是不必要的。)我也许应该更清楚我想要实现什么:一个函数
weekday_to_string
,它以dateutil.rrule.weekday
的一个实例作为输入,并返回一个字符串,比如“Monday”。我想在这个函数中使用字典作为查找表,因此实际上不需要先将dateutil.rrule.weekday
实例转换为字符串,因为这样我就无法再查找输入了。你知道吗下面是我最后是如何实现的:
相关问题 更多 >
编程相关推荐