在 python 中使用哪种数据结构来编码 2 列 table?
Which data structure to use in python for coding a 2 column table?
我想编写以下代码table
我正在考虑有一个功能,我可以输入例如 "tropical zone" 然后 return 我 n = 0.8
和 n1 = 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')
提前致谢
如果我这样做,我更愿意设置一个 class 来保存行数据,例如:
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
稍后您可以为此添加辅助函数 class。
当计算变得更复杂时,您可以用 class 包裹 list
或 dict
以更好地控制您的行。
您可以使用字典、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)
要记住的要点
- 这样您就可以使用区域进行搜索了。但这非常慢,因为您必须遍历所有元素。
- 当您不想删除或修改元素时使用此选项。
我想编写以下代码table
我正在考虑有一个功能,我可以输入例如 "tropical zone" 然后 return 我 n = 0.8
和 n1 = 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')
提前致谢
如果我这样做,我更愿意设置一个 class 来保存行数据,例如:
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
稍后您可以为此添加辅助函数 class。
当计算变得更复杂时,您可以用 class 包裹 list
或 dict
以更好地控制您的行。
您可以使用字典、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)
要记住的要点
- 这样您就可以使用区域进行搜索了。但这非常慢,因为您必须遍历所有元素。
- 当您不想删除或修改元素时使用此选项。