在python中使用哪种数据结构来编码2列表?

2024-09-25 00:31:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想对下表进行编码

two column table

我正在考虑一个函数,我可以输入例如“热带”,然后返回我n = 0.8n1 = 0.9 我在考虑用字典。在这种情况下,这是最合适的数据结构吗?你知道吗

def navigationcoefficients (type,key):
    if type == 'n':
        dict = {'unrestricted navigation': 1, 'summer zone': 0.9, 'tropical zone': 0.8, 'coastal zone': 0.8, 'sheltered area': 0.65}
        return dict[key]
    if type == 'n1':
        dict = {'unrestricted navigation': 1, 'summer zone': 0.95, 'tropical zone': 0.9, 'coastal zone': 0.9, 'sheltered area': 0.65}
        return dict[key]

n = navigationcoefficients('n','unrestricted navigation')
n1 = navigationcoefficients('n1','unrestricted navigation')

提前谢谢


Tags: keyzonereturniftypeareadictnavigation
2条回答

如果这样做,我更希望设置一个类来保存行数据,例如:

class NamedTuple:
    def __init__(self, n, n1):
        self.n = n
        self.n1 = n1

data = {
    "Unrestricted navigation": NamedTuple(1.00, 1.00),
    "Summerzone": NamedTuple(0.90, 0.95)
    # ...
}

data["Summerzone"].n # access n of summer zone

以后可以为这个类添加助手函数。你知道吗

当计算变得更复杂时,可以用类包装listdict,以便更好地控制行。你知道吗

您可以使用字典、json和数组的组合。你知道吗

示例:

array = []
navigationDetails = {"Unrestricted Navigations":{"n1":"1.00","n2":"1.00"}}
array.append(navigationDetails)
navigationDetails = {"Summer Zone":{"n1":"0.90","n2":"0.95"}}
array.append(navigationDetails)

要记住的要点

  • 这样您就可以使用zone进行搜索。但这是非常缓慢的,因为你必须遍历所有的元素。你知道吗
  • 如果不想删除或修改图元,请使用此选项。你知道吗

相关问题 更多 >