gpt4 book ai didi

python - 在 python 中创建一个表

转载 作者:太空狗 更新时间:2023-10-30 02:12:15 25 4
gpt4 key购买 nike

我想在 python 中构建一个包含三列的表,然后根据需要获取值。我认为字典是最好的方式,它具有到两个值的键映射。

|column1 |  column 2     | column 3   | 

| MAC | PORT NUMBER | DPID |

| Key | Value 1 | Value 2 |

建议方式:

//定义一个全局学习表globe_learning_table = defaultdict(set)

//以MAC地址为key添加交换机的端口号和dpid//在这种情况下,packet.src 将为您提供 MAC 地址globe_learning_table[packet.src].add(event.port)globe_learning_table[packet.src].add(dpid_to_str(connection.dpid))

//根据 MA​​C 地址获取 DPID 的值globe_learning_table[packket.src][????]

我不确定一个键是否指向两个值,我如何才能获得与该键关联的特定值。

我也愿意使用任何其他数据结构,如果它可以构建这个动态表并在必要时给我特定的值。

最佳答案

为什么要字典?为什么不是命名元组的列表,或者来自您定义的某个类的对象集合(列表、字典)(每列都有属性)?

有什么问题:

class myRowObj(object):
def __init__(self, mac, port, dpid):
self.mac = mac
self.port = port
self.dpid = dpid


myTable = list()
for each in some_inputs:
myTable.append(myRowObj(*each.split())

...或类似的东西?

(注意:myTable 可以是列表、字典或任何适合您需要的东西。显然,如果它是字典,那么您必须询问您将使用哪种键来访问这些“行”)。

这种方法的优点是您的“行对象”(您以某种对您的应用程序域更有意义的方式命名)可以实现您选择的任何语义。这些对象可以验证和转换实例化时提供的任何值,计算任何派生值等。您还可以定义对象的字符串和代码表示(当您的行之一用作字符串或某些类型的开发和调试或序列化(例如,_str__repr_ 特殊方法)。

命名元组(在 Python 2.6 中添加)是一种轻量级对象类,与普通自定义类相比,它可以提供一些性能优势和更轻的内存占用(适用于您只需要命名字段而不将自定义方法绑定(bind)到这些对象的情况,例如)。

关于python - 在 python 中创建一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17302278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com