实现遍历元组列表并两两比较输出最小/最大样本类别函数
解决方案
可以通过Python的itertools.combinations生成所有不重复的两两元组组合,再逐一比较样本数,输出对应的最小/最大类别:
import itertools def get_min_max_class(input_list): # 生成所有两两不重复的元组组合 for pair in itertools.combinations(input_list, 2): class_a, count_a = pair[0] class_b, count_b = pair[1] # 比较样本数,确定最小和最大类别 if count_a < count_b: min_class = class_a max_class = class_b else: min_class = class_b max_class = class_a # 按指定格式输出结果 print(f"{pair[0]} v {pair[1]} -> min_class = {min_class}, max_class = {max_class}") # 测试示例 my_list = [(0, 126), (1, 192), (2, 330), (3, 952)] get_min_max_class(my_list)
代码说明:
itertools.combinations(input_list, 2):生成列表中所有长度为2的不重复组合,避免重复比较(比如不会同时处理(0,1)和(1,0))- 对每个组合拆分出类别编号和样本数,通过样本数大小确定
min_class和max_class - 用f-string按照要求的格式输出对比结果
运行代码后,会输出你期望的所有对比结果。
内容的提问来源于stack exchange,提问作者Amina Umar
相关产品推荐
相关产品推荐

