python小趣题之统计数字对

xiaoxiao2021-03-01  66

前言

上月帮国外的同学做了一道非常基础的python题,比较有意思,再次记录一下,题目意思如下:

有这么一个数字对的list:

list_digit = [56448162, 5433721, 34751217, 686221321, 65220111, 54349339, 40709944, 63967760, 48056573, 78300211]

请控制台打印并统计出现最高的首尾数字对是哪个?

解题思路

# coding=utf-8 def main(): fl_list = [] list_digit = [56448162, 5433721, 34751217, 686221321, 65220111, 54349339, 40709944, 63967760, 48056573, 78300211] for digit in list_digit: pairs = (int(str(digit)[0]), int(str(digit)[-1])) # 将首尾数字拼接成元组放入list,list中可以有重复元素 fl_list.append(pairs) # 元组可以过滤重复相同元素,所以将list转成一份元组 fl_set = set(fl_list) # 字典统计个数,将元组作为key,出现的次数作为value count_dict = {} for fl in fl_set: count_dict[fl] = fl_list.count(fl) print(f'统计的次数:{count_dict}') # 将dict中的value最大值对应的key值取出来,用max函数实现,第一个参数传入dict,第二个传入key print('出现最高的首尾数字对为:' + str(max(count_dict, key=count_dict.get))) if __name__ == '__main__': main()

主要是利用了python的基础数据结构,dict和set来完成去重统计。

转载请注明原文地址: https://www.6miu.com/read-4199998.html

最新回复(0)