【问题标题】:adding is_empty to hashtable将 is_empty 添加到哈希表
【发布时间】:2016-09-03 19:11:41
【问题描述】:

我正在尝试添加一个 is_empty(self) 方法。如果哈希表没有将键映射到值,则返回 true,否则返回 false。 这就是我目前所拥有的,我只是不确定如何使用 self 来处理 is_empty 函数。

class MyHashTable:

    def __init__(self, capacity): 
        self.capacity = capacity 
        self.slots = [None] * self.capacity

    def __str__(self): 
        return str(self.slots )

    def is_empty(self) 
        pass

【问题讨论】:

  • 可能值得先实现__len__(),然后您可以使用len(table) == 0(或只是if table: ...)进行空检查。

标签: python python-3.x hashtable


【解决方案1】:

另一种方法是使用名为 all() 的内置函数。您可以查看reference 了解更多详情。

如果可迭代对象的所有元素都为真(或可迭代对象为空),则返回 True。

示例代码:

def is_empty(self) 
    return all(item is None for item in self.slots)

【讨论】:

  • 一个风格问题:与None比较应该由item is None完成。
【解决方案2】:

因为self.slotslist,所以目标是测试所有元素都是None。我建议:

def is_empty(self) 
   return self.slots.count(None) == len(self.slots)

请参阅How to check if all items in the list are None? 了解我的答案和其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2021-10-21
    • 2012-09-03
    相关资源
    最近更新 更多