如何在Python中访问集合的全部元素(包括重复元素)
Python中访问包含重复元素的集合内容问题
Python标准的set(集合)具有自动去重、无序的特性,所以你初始化s = {1, 2, 3, 4, 4, 4, 5, 6, 78, 6}时,重复的4和6已经被自动剔除,无法从这个set中获取原始的重复元素。要解决这个问题,有两种常用思路:
1. 改用列表存储原始数据
列表(list)允许元素重复,是存储带重复项数据的最直接选择,直接遍历即可输出全部元素:
lst = [1, 2, 3, 4, 4, 4, 5, 6, 78, 6] for i in lst: print(i)
执行后会依次输出1,2,3,4,4,4,5,6,78,6,包含所有重复项。
2. 用collections.Counter统计元素出现次数
如果已经通过其他方式得到了去重的集合,但需要还原或输出包含重复项的内容,可以用Counter统计每个元素的出现次数,再根据次数重复输出:
from collections import Counter # 原始带重复的数据源(比如列表) source = [1, 2, 3, 4, 4, 4, 5, 6, 78, 6] element_counts = Counter(source) # 按原始重复次数输出所有元素 for num, count in element_counts.items(): for _ in range(count): print(num)
也可以通过Counter重建包含重复项的列表,再遍历:
from collections import Counter source = [1, 2, 3, 4, 4, 4, 5, 6, 78, 6] element_counts = Counter(source) reconstructed_list = [] for num, count in element_counts.items(): reconstructed_list.extend([num] * count) for i in reconstructed_list: print(i)
内容的提问来源于stack exchange,提问作者CKJ_1630
相关产品推荐
相关产品推荐

