是否可以在Python列表中标记元素?

时间:2019-05-09 07:05:11

标签: python list indexing

我正在使用sklearn处理Python中的分类问题。我需要尝试不同的算法,并为每个数据计算一个混淆矩阵。

是否可以将这些矩阵存储在列表中,同时仍然可以将它们称为my_list["SVM"]my_list["KNN"]my_list["logistic_regression"]等,而不是my_list[0]my_list[1] ...?

如果不可能,我应该改用什么数据结构?

2 个答案:

答案 0 :(得分:2)

正如评论员所提到的,您可以使用dictionary来标记您的值,其中key是标签,而value是分配给标签的值

In [32]: dct = {}                                                                                                              

In [33]: dct['label1'] = 'item1'                                                                                               

In [34]: dct['label2'] = 'item2'                                                                                               

In [35]: dct['label3'] = 'item3'                                                                                               

In [36]: dct                                                                                                                   
Out[36]: {'label1': 'item1', 'label2': 'item2', 'label3': 'item3'}

如果同一标签有多个值,请使用列表保存所有值,以后也可以为标签附加值。

In [37]: dct = {}                                                                                                              

In [38]: dct['label1'] = ['item11','item12']                                                                                   

In [40]: dct['label2'] = ['item21','item22', 'item23']   

In [44]: dct['label3'] = ['item31','item32', 'item33', 'item34']                                                               

In [45]: dct                                                                                                                   
Out[45]: 
{'label1': ['item11', 'item12'],
 'label2': ['item21', 'item22', 'item23'],
 'label3': ['item31', 'item32', 'item33', 'item34']}

In [51]: dct['label4'] = ['item41', 'item42', 'item43', 'item44', 'item45']                                                            

In [52]: dct['label1'].append('item13')                                                                                                

In [53]: dct                                                                                                                           
Out[53]: 
{'label1': ['item11', 'item12', 'item13'],
 'label2': ['item21', 'item22', 'item23'],
 'label3': ['item31', 'item32', 'item33', 'item34'],
 'label4': ['item41', 'item42', 'item43', 'item44', 'item45']}

答案 1 :(得分:1)

我将其添加为评论,但我不能这样做,因为声誉...

字典是显而易见的答案,但是也许您应该看看pandas数据框。您可以将实际的y放在这样的数据框中:

import pandas as pd
df = pd.DataFramge({'y_act': y})

并在以后添加新的预测:

df['y_SVM'] = y_pred