【发布时间】:2014-06-14 13:06:23
【问题描述】:
我有一个由三个项目组成的子列表列表。只有第一项和最后一项在子列表中很重要,因为我想根据列表中最后一项的频率更改所有子列表中的最后一项。
这是我的清单:
lst = [['A','abc','id1'],['A','def','id2'],['A','ghi','id1'],['A','ijk','id1'],['A','lmn','id2'],['B','abc','id3'],['B','def','id3'],['B','ghi','id3'],['B','ijk','id3'],['B','lmn','id'],['C','xyz','id6'],['C','lmn','id6'],['C','aaa','id5']]
例如,A 出现最多的是 id1 而不是 id2,所以我想用 id1 替换所有以 A 出现的 id2。对于 B,id3 是最常见的,所以我想用 id3 替换任何其他实例,这意味着我只想将 B 的 'id' 替换为 'id3'。对于 C,我想用“id6”替换“id5”的实例,因为“id6”出现在列表中最多。
Desired_List = lst = [['A','abc','id1'],['A','def','id1'],['A','ghi','id1'],['A','ijk','id1'],['A','lmn','id1'],['B','abc','id3'],['B','def','id3'],['B','ghi','id3'],['B','ijk','id3'],['B','lmn','id3'],['C','xyz','id6'],['C','lmn','id6'],['C','aaa','id6']]
我还应该提到,这将在一个非常大的列表中完成,因此需要速度和效率。
【问题讨论】:
-
另外,你打算之后对desired_list 做什么?这可能会影响它应该采用的形式(很可能,为了达到你提到的效率,你需要存储一些比平面值更漂亮的东西)。