首页 > 解决方案 > 是否可以在 Python 列表中标记元素?

问题描述

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

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

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

标签: pythonlistindexing

解决方案


正如评论者所提到的,您可以使用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']}

推荐阅读