索引嵌套在字典中的namedtuple

时间:2019-09-18 15:05:29

标签: python python-3.x dictionary namedtuple

我希望将一个命名的元组存储在字典中。那部分容易。不过,我不知道如何在namedtuple中引用单个位。

我知道我可以只使用字典来使生活更轻松,但是如果您拥有不需要更改的值,那么在这里使用一个namedtuple会很好(更多的只是,有趣-我意识到字符串也是不可变的。

from collections import namedtuple

Rec = namedtuple('name', ['First', 'Middle', 'Last'])
name = Rec('Charles', 'Edward', 'Bronson')

info = dict(identity=name)

print(name.First)
print(info['identity'])
print(type(info['identity']))

结果:

Charles
name(First='Charles', Middle='Edward', Last='Bronson')
<class '__main__.name'>

我希望能够通过调用name.First或类似方法来访问info['identity'][name.First],但似乎无法在嵌套的namedtuple中建立索引。

1 个答案:

答案 0 :(得分:2)

您可能知道,命名元组支持多种类型的索引

  • tuple[0]返回第一个字段(顺序是从您在namedtuple定义期间给出的字段列表中定义的)
  • tuple.field_name返回名为field_name的字段

info['identity']是您要索引的namedtuple,让我们开始:)

print(info['identity'] == name)
# True
print(info['identity'].First)
# Charles
# or
print(info['identity'][0])
# Charles

# OR, splitting the operations
name_field = info['identity']
print(name_field.First)