首页 > 解决方案 > 使用字典而不是 if 语句

问题描述

我对 python 非常熟悉,现在我开始学习如何编写尽可能简短高效的代码。

所以,这是一段代码,我的老师告诉我最好不要在我的代码中有重复的块。

他告诉我使用字典而不是 if 语句,但我不知道该怎么做,因为有 for 循环。

if day == '1':
    for elem in today:
        if city.lower() in elem or city.upper() in elem:
            print(today1[0])
            print(elem)
            cur_execute("INSERT INTO data VALUES(?, ?)", today1[0], elem)
            break

    else:
        print('data was not found')

if day == '2':
    for elem in tomorrow:
        if city.lower() in elem or city.upper() in elem:
            print(tomorrow1[0])
            print(elem)
            cur_execute("INSERT INTO data VALUES(?, ?)", tomorrow1[0], elem)
            break

    else:
        print('data was not found')

if day == '3':
    for elem in aftertomorrow:
        if city.lower() in elem or city.upper() in elem:
            print(aftertomorrow1[0])
            print(elem)
            cur_execute("INSERT INTO data VALUES(?, ?)", aftertomorrow1[0], elem)
            break

    else:
        print('data was not found')

标签: pythondictionaryif-statement

解决方案


你可以试试:

the_day = { 
    '1': (today, today1),
    '2': (tomorrow, tomorrow1),
    '3': (aftertomorrow, aftertomorrow1)}

selected_day, selected_day1 = the_day[day]
for elem in selected_day:
    if city.lower() in elem or city.upper() in elem:
        print(selected_day1[0])
        print(elem)
        cur_execute("INSERT INTO data VALUES(?, ?)", selected_day1[0], elem)
        break

推荐阅读