When and why should I use a namedtuple instead of a dictionary?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
What are “named tuples” in Python?
在什么情况下应该使用一个NamedDuple?
当我研究它时,它看起来像一种使元组更像字典的方法。它们与词典相比如何?
只能将字典的相同哈希类型用于NamedDuples吗?
在
但是,它们有一个更严格的限制——它们的键等价物"字段名"必须是字符串。
基本上,如果要创建类的一系列实例,例如:
1 2 3 4 5 6 7 8 | class Container: def __init__(self, name, date, foo, bar): self.name = name self.date = date self.foo = foo self.bar = bar mycontainer = Container(name, date, foo, bar) |
在
1 2 3 | Container = namedtuple('Container', ['name', 'date', 'foo', 'bar']) mycontainer = Container(name, date, foo, bar) |
作为替代品。
当然,您可以创建一组
1 | mynamedtuple.fieldname |
比…更漂亮
1 | mydict['fieldname'] |
和
1 | mynamedtuple = MyNamedTuple(firstvalue, secondvalue) |
比…更漂亮
1 | mydict = {'fieldname': firstvalue, 'secondfield': secondvalue} |
最后,与常规的
无论命名与否,元组都是不可变的。