微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在python中使用namedtuple再现树数据结构子/父

如何解决在python中使用namedtuple再现树数据结构子/父

我正在尝试嵌套名称元组,试图创建一个数据结构,最终可以使用该命名法访问数据:

parent.child.var1.a,即不带括号的点表示法。

我知道用其他方式编码可能更好,但我只是想了解一下这种金属练习,以了解嵌套的namedtupples是否可行。

到目前为止,我有

sub=namedtuple('sub',('var1','var2'))
first =sub(5,6)
second = sub(7,8)
third = sub(9,10)
fleet = {'first':first,'second':second,'third':third}

# ideally here the nametupple would be create on the fly with
# def create_parent(name,fleet)
filing = namedtuple('filing',fleet.keys())
for i,value in enumerate(fleet.values()):
    filing[i] = value

这不起作用,因为分配文件[i]给出了错误

基本上,我创建了一个名为sub的第一个命名元组,然后尝试动态创建另一个其中包含可变数量“ subs”的命名tupple。我创建了一个函数作为构造函数,将变量添加为字典的键。到现在为止还挺好。但是,当我要分配变量的内容时,就会出现问题。 我的意图是查看下面的伪代码中的dict和“不知何故”编码:

对于字典的每个键值,

将该值赋给称为归档的命名元组的称为键的变量。 更确切地说,在循环时,我假装获取字典中每个键的值(这是namedtuple中的变量名),并将一些数据传递给它。

有什么主意吗?

注意:如果可行,目的是进一步嵌套名为tuple的元组,并能够以parent.second.var1等身份访问最深的数据。

注2:当然,根据第一个答案,我不能更改元组的值。连音是不变的。我要创建的是一个动态命名组,变量名称是字典的键,而这些变量的值是dict.values()。

注意3:据我所见,建议的答案使用嵌套的名称元组,而不使用动态创建的元组。即关键和困难是嵌套命名元组。在我的问题中,关键是要基于其他对象(即字典)创建一个namedtuple,这样,变量名就取决于其他对象(dict.keys)和值(dict.values())

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?