Python - 测试行是否具有相似的频率
当需要检查行是否具有相似的频率时,使用“all”运算符、“Counter”方法和简单迭代。
以下是相同的演示-
示例
from collections import Counter my_list = [[21, 92, 64, 11, 3], [21, 3, 11, 92, 64], [64, 92, 21, 3, 11]] print("名单是:") print(my_list) my_result = all(dict(Counter(row)) == dict(Counter(my_list[0])) for row in my_list ) if(my_result == True): print("All rows have similar frequency") else: print("All rows do not have similar frequency")输出结果
名单是: [[21, 92, 64, 11, 3], [21, 3, 11, 92, 64], [64, 92, 21, 3, 11]] All rows have similar frequency
解释
所需的包被导入到环境中。
定义了一个带有整数的列表列表并显示在控制台上。
listoflist中的列表先转换为Counter再转换为字典。
检查每个列表中的元素是否以相同的频率出现。
如果是,则布尔值存储在变量中。
根据这个布尔变量,相关消息会显示在控制台上。