Python如何将元素频次统计输出的元组转换为一维列表?
实现方案
你可以将遍历得到的每个元组元素依次存入空列表中即可达成需求,基于你原有代码的修改版本如下:
i = [5,5,7,9,9,9,9,9,8,8] def num_list(i): return [(i.count(x),x) for x in set(i)] result = [] for tv in num_list(i): if tv[1] > 1: # 把元组两个元素批量加入结果列表 result.extend(tv) print(result)
运行后输出为:
[2, 8, 5, 9, 2, 5, 1, 7]
和你期望的格式一致(你示例中末尾的半括号属于笔误,这里输出为标准列表格式)。
如果需要更高的统计效率(列表元素量大时推荐),可以用Python内置的Counter工具实现:
from collections import Counter i = [5,5,7,9,9,9,9,9,8,8] count_map = Counter(i) # 展开元组生成一维列表 result = [val for (num, cnt) in count_map.items() for val in (cnt, num)] print(result)
内容的提问来源于stack exchange,提问作者Nutnicha
相关产品推荐
相关产品推荐

