索引嵌套在字典中的命名元组
Indexing a namedtuple nested in a dictionary
我想在字典中存储命名元组。那部分很容易。不过,我不知道如何引用 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'>
我希望能够通过调用 info['identity'][name.First]
或类似的方式访问 name.First
,但我似乎无法在嵌套的 namedtuple 中建立索引。
您可能知道,命名元组支持多种类型的索引
tuple[0]
returns 第一个字段(顺序根据您在 namedtuple
定义期间提供的字段列表定义)
tuple.field_name
returns 字段名为 field_name
info['identity']
是您要索引的命名元组,所以我们开始吧:)
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)
我想在字典中存储命名元组。那部分很容易。不过,我不知道如何引用 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'>
我希望能够通过调用 info['identity'][name.First]
或类似的方式访问 name.First
,但我似乎无法在嵌套的 namedtuple 中建立索引。
您可能知道,命名元组支持多种类型的索引
tuple[0]
returns 第一个字段(顺序根据您在namedtuple
定义期间提供的字段列表定义)tuple.field_name
returns 字段名为field_name
info['identity']
是您要索引的命名元组,所以我们开始吧:)
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)