当前位置: 首页 > 面试题库 >

在Python中实现类似列表的索引访问

祁霖
2023-03-14
问题内容

我希望能够使用类似数组的语法访问python对象的某些值,即:

obj = MyClass()
zeroth = obj[0]
first = obj[1]

这可能吗?如果是这样,您如何在相关的python类中实现此功能?


问题答案:

你需要写或重写__getitem____setitem____delitem__

因此,例如:

class MetaContainer():
    def __delitem__(self, key):
        self.__delattr__(key)
    def __getitem__(self, key):
        return self.__getattribute__(key)
    def __setitem__(self, key, value):
        self.__setattr__(key, value)

这是一个非常简单的类,允许对其属性进行索引访问。



 类似资料:
  • 问题内容: 我很新,我希望它不太明显,但是我似乎无法为以下问题找到一个简短而准确的答案。 我有两个清单: 我想查找第二个列表()的所有索引何时在第一个列表()中,以便得到如下内容: b在a中的索引:或 问题答案: 具有列表理解: 或使用for循环:

  • 问题内容: 我是Python的新手。我看到列表索引中使用了它,特别是当它与函数调用关联时。 Python 2.7文档建议将其转换为。为什么需要用冒号作为后缀? 我了解这是用来识别字典中的键的。 问题答案: 是slice语法的定界符,用于“分割”序列中的子部分, 也适用于元组和字符串。

  • 问题内容: 由于Java不允许将方法作为参数传递,因此您使用什么技巧来实现Python(如Java中的列表理解)? 我有一个字符串列表(ArrayList)。我需要通过使用函数来转换每个元素,以便获得另一个列表。我有几个函数,它们将一个String作为输入,并返回另一个String作为输出。如何制作一个可以将列表和函数作为参数的通用方法,这样我就可以在处理完每个元素后获取列表。从字面上看这是不可能

  • 问题内容: 尝试在PostgreSQL上重新创建我的SQL Server数据库。一切正常,除了我找不到如何重新创建此索引: 将非常感谢您的帮助。 阿列克谢 更新: http://img38.imageshack.us/img38/1071/89013974.png这是db结构star + eav ,只有一个查询 也许这不是最佳的atm。我也正在努力。也许是这样的 任何提示欢迎=) 问题答案: 不支

  • 问题内容: 我在python中有一个由列表列表建模的2D数组,我想提取该列。我进行了快速研究,发现了一种使用numpy数组的方法。问题是 我不想使用numpy, 所以不想将列表列表转换为numpy数组,然后使用[:,1]语法。我尝试在正常的列表列表上使用它,但显示错误,因此是不可能的。我正在为列表列表请求类似的东西,而不必遍历每个元素(在numpy数组中,使用[:,1]语法访问列比在数组元素上进行

  • 问题内容: 我在bleow显示的代码中使用嵌套列表在Python中遇到了一些问题。 基本上,我有一个包含所有0值的2D列表,我想循环更新列表值。 但是,Python不会产生我想要的结果。我对range()Python列表索引有误解吗? 我预期的结果是: 但是Python的实际结果是: 这里发生了什么? 问题答案: 问题是由于python选择通过引用传递列表这一事实引起的。 通常,变量是按“值”传递