Python - 按第一个元素值的频率限制元组
当需要通过第一个元素值的频率来限制元组时,使用简单的“if”条件以及迭代和“append”方法。
示例
下面是相同的演示
my_list = [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56),(73, 84), (91, 40), (40, 83), (13, 27)] print("名单是:") print(my_list) my_key = 1 my_result = [] mems = dict() for sub in my_list: if sub[0] not in mems.keys(): mems[sub[0]] = 1 else: mems[sub[0]] += 1 if mems[sub[0]] <= my_key: my_result.append(sub) print("过滤后的元组是:") print(my_result)输出结果
名单是: [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83), (13, 27)] 过滤后的元组是: [(21, 24), (13, 42), (11, 23), (32, 43), (25, 56), (73, 84), (91, 40), (40, 83)]
解释
元组列表被定义并显示在控制台上。
一个整数值被赋值为1。
定义了一个空列表。
创建了一个空字典。
遍历元组列表,如果在字典的键值中找不到元素,则将第0个索引分配为1。
否则,它增加1。
如果小于或等于键,则将该元素附加到空结果中。
此结果是显示在控制台上的输出。