用变量替换列表名

2024-10-03 21:32:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我一周中的每一天都有几个字典,周日["a", "b", "c"],周一["d", "f", "g"],等等,它们位于另一个脚本(xscript.py)中,我想根据我当前所在的一周中的哪一天打印出来,类似这样:

import datetime
import xscript

def print_daily_list():
    day_of_week = datetime.datetime.today().weekday()
    print(xscript.day_of_week)

我不想创建一堆if语句来根据日期将day_of_week替换为“Sunday”或“Monday”


Tags: ofpyimport脚本todaydatetime字典def
3条回答

我相信你可以用xscript.py制作字典

dic = { 'Monday': ['a', 'b'], 'Sunday': ['e', 'f']}  # and all the weeks

为了访问它,我建议在xscript中创建一个函数,比如

def get_dict(key):
    return dic.get(key, "Default List")

现在在主文件中,您可以像这样调用它:

print(xscript.get_dict(day_of_week)

此解决方案使用getattr获取此实例中对象的属性,即模块xscript。如果脚本模块有一个名为星期四的变量,而今天是星期四,则此脚本将获取并打印该变量

day_of_week = datetime.datetime.today().strftime('%A')
print(getattr(xscript, day_of_week))

将它们存储在dictionary

days = {
    'Sunday': ['a', 'b', 'c'],
    'Monday': [1, 2, 3],
    'Tuesday': ['a', 'b', 'c'],
    'Wednesday': [1, 2, 3],
    'Thursday': ['a', 'b', 'c'],
    'Friday': [1, 2, 3],
    'Saturday': [1, 2, 3],
}

然后把一周中的某一天传给你的剧本,并在当天给听写人打电话

days[day]

相关问题 更多 >