首页 > 解决方案 > Python 字典更新在 for 循环中不起作用

问题描述

我有一个get_h1()返回 2 个标签的方法:

[<h2>Запись к врачу</h2>, <h2>Запись на диагностику</h2>]

我有另一种方法,里面有一个 for 循环。它应该从方法中获取两个标签get_h1()并在字典中添加 3 个值。但结果它只返回 1 个标签的值

def print_h1(self):
        self.h1 = {}
        self.h1_all = self.get_h1()
        self.h1_all = [self.h.text for self.h in self.h1_all]
        for self.h in self.h1_all:
            self.value = self.h
            self.leng = len(self.h)
            if self.key in self.h:
                self.key = "YES"
            else: 
                self.key = "NO"
            self.h1.update({'value':self.value, 'leng': self.leng, 'key': self.key})
        return self.h1

结果如下:

{'value': 'Запись на диагностику', 'leng': 21, 'key': 'NO'}

如何获得两个标签的结果?

标签: pythondictionary

解决方案


文档中

dict.update([other])

使用其他键/值对更新字典,覆盖现有键

你有 self.h1本字典,每次调用都会self.h1.update覆盖它的数据。此外,不可能将重复的键放入字典中。

如果要存储有关多个H1 标签的数据,则应使用字典列表


推荐阅读