【发布时间】:2019-11-27 19:38:35
【问题描述】:
我有一个列表。
e.g. list_a = [[1,2,3], [2,3], [4,3,2], [2,3]]
我想把它们数成这样
[1,2,3]: 1
[2,3]: 2
[4,3,2]: 1
集合中有一个库计数器,但不适用于列表等不可散列的元素。目前,我只是尝试使用其他间接方式,例如将列表 [1,2,3] 转换为字符串“1_2_3”来做到这一点。有没有其他方法可以直接开启对列表的计数?
【问题讨论】:
-
如果列表只包含整数转换为元组和应用计数器,否则排序如果元素是可排序的 + itertools.groupby。否则只是一个嵌套的 for 循环
-
@DanielMesejo 你还需要先排序
-
@roganjosh 你的意思是使用计数器吗?
-
Counter(map(tuple,list_a))给出:Counter({(1, 2, 3): 1, (2, 3): 2, (4, 3, 2): 1}) -
@DanielMesejo 我做到了...但现在在查看您的编辑之前可能有些事情我不知道