后续:从lis获取半唯一值的频率计数

2024-04-25 05:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我问的问题的后续:Returning semi-unique values from a list。简言之,我想把清单翻过来:

[a,a,a,b,b,b,a,a,a]

进入

['a','b,'a']

用户Psidom的回答通过以下方式发挥了魅力:

#Paraphrased answer from Psidom

from itertools import groupby  

lst = ['a','a','a','b','b','b','a','a','a']

[k for k, _ in groupby(lst)]
# ['a', 'b', 'a'] #call this TRANSFORM

我的最终目标是pd.数据帧它有行=(转换中的元素数)和两列:label和frequency。我的问题是从原始列表中获取每个“半唯一”值的频率计数,这应该是:

[3,3,3] 

先谢谢你

卢克


Tags: 用户answerfrom方式listreturninguniquevalues
1条回答
网友
1楼 · 发布于 2024-04-25 05:28:57

^{} documentation的输出示例如下:

# [k for k, g in groupby('AAAABBBCCDAABBB')]  > A B C D A B
# [list(g) for k, g in groupby('AAAABBBCCD')]  > AAAA BBB CC D

所以,我认为你需要:

[(k, len(list(v))) for k, v in groupby(lst)]

给你元素和频率:

[('a', 3), ('b', 3), ('a', 3)]

相关问题 更多 >