python - 使用字典而不是 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')
解决方案
你可以试试:
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
推荐阅读
- regex - 正则表达式忽略字符串中的字母数字字符
- c# - C# Discord webhook,发送图像并将文本放在该图像上
- android - 在 ViewPager2 中禁用以下项目
- amazon-web-services - 如何覆盖 Amplify 登录页面
- intellij-idea - 如何从非 Java 扩展(如 .conf 文件)导航到 Java 类声明?
- excel - 使用excel VBA将相似节点从多个XML文件复制到一个XML
- javascript - 如何使用 Vue 3 强制工具提示在高图中的多个图表中显示?
- python - 来自 python 的 Bash 脚本
- reactjs - React - 获取 URL 的一部分并传递给 redux 商店
- java - 试图通过输入日期来查找数值?