我解析了该温度适用的一周和几天的天气,问题是 3 个单词没有我需要的结尾,即“星期三”、“星期五”、“星期六”。这些键必须具有结尾“星期三”、“星期五”、“星期六”。这是代码:
def weather(soup):
weather = soup.find_all('div', class_='day-temperature')
days = soup.find_all('div', class_='day-week')
only_days = [d.text.lower() for d in days]
only_int = [w.text for w in weather]
w_week = {}
for i in range(len(only_days)):
w_week.update({only_days[i]: only_int[i]})
print(w_week) #{'суббота': '+26°', 'воскресенье': '+26°', 'понедельник': '+28°', 'вторник': '+22°', 'среда': '+23°', 'четверг': '+21°', 'пятница': '+21°'}
字典中的数据是动态的,并且会根据执行解析的页面上的变化而变化,因此,当替换 EXACTLY THESE WORDS 时,它们应该在字典中的相同位置结束。请帮忙,我已经滑倒了
我是这么决定的。也许不是最好的选择。澄清一下:我用字典的副本运行一个循环,并在每次迭代中从字典中获取键和值。接下来,我检查键(在本例中为星期几)是否在要更改的列表中,我剪切了值,将其保存到缓冲区。接下来,我只需在字典中创建另一个已更改结尾的键。对于其余不需要更正的键,我只是重复操作而不更改结尾(以便元素保留在它们的位置)。
问题中的写法比较难理解,但是如果要替换键名,同时让旧值\u200b\u200bare绑定到新键上,那么可以这样操作(演示的工作示例,根据此逻辑修改您的代码 - 取两行注释并延长至另外两天):
您还不能修复已经获得的字典,但在创建它时替换键。好吧,为简单起见,我不是根据需要更改的一周中的天数列表进行检查,而是在最后