在python中使用哪种数据结构

时间:2015-03-19 10:03:27

标签: python dictionary data-structures

我有以下,当然是短的," table"以csv的形式:

"Some Class"|"Type 10"|"Type 11"
"Class 1"   |  0.971  |  0.968
"Class 2"   |  0.995  |  0.996
"Class 3"   |  0.970  |  0.971
"Class 4"   |  0.969  |  0.970
"Class 5"   |  0.992  |  0.998
"Class 6"   |  0.992  |  0.998
"Class 7"   |  0.980  |  0.984
"Class 8"   |  0.973  |  0.981
"Class 9"   |  0.969  |  0.978
"Class 10"  |  0.992  |  0.998

在构建一个python类时,会使用从上面的#34; table"中检索系数的方法,以及将在计算中使用它们的方法,我想知道要使用哪种数据结构。 该类将明确要求输入 Class#以供使用。 Type 10 Type 11 ,始终参与计算。

上面的

更新: Class#是字符串,实际上是类类型的简短描述。

到目前为止,我正在尝试以下内容:

ec['class'] = ec.get('class', {'type_a': float(), 'type_b': float()})
然后可以使用

,例如,

ec['class']['type_b']

在这种情况下需要注意哪些事项以及最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

如果类总是按顺序排列,我想最简单的方法就是在列表中有一个列表。对我来说,当我需要在计算中使用数字时,它会更方便。

我假设您在行中读取数据并获取列表。请注意,类1现在位于表中的第0位。每个类列表都有一个子列表,其中类型10在pos 0中,类型11在pos 1中。

data = ['Some Class|Type 10|Type 11',
'Class 1|0.971|0.968',
'Class 2|0.995|0.996',
'Class 3|0.970|0.971',
'Class 4|0.969|0.970',
'Class 5|0.992|0.998',
'Class 6|0.992|0.998',
'Class 7|0.980|0.984',
'Class 8|0.973|0.981',
'Class 9|0.969|0.978',
'Class 10|0.992|0.998']

# To get rid of the title
data.pop(0)

ec = []

for datarow in data:
    dsplit = datarow.split('|')
    ec.append([dsplit[1],dsplit[2]])

你也可以通过列表理解来缩短这段代码,但暂时还是让我望而却步。