import numpy as np import pandas as pd count = 1000 * 100 a = np.arange(count) l = set([ f"{i:05d}" for i in a ]) sum_list = [ sum(map(int, list(i))) for i in l] sum_df = pd.value_counts(sum_list) # print(sum_df.to_dict()) # print(np.ceil((100000/sum_df)).to_dict()) # 数字个数统计 sum_union_dict = dict() num_cnt_dict = dict() for i in a: item = f"{i:05d}" sum_first_3 = sum(map(int, list(item[:3]))) sum_next_3 = sum(map(int, list(item[2:]))) sum_key = f"{sum_first_3}_{sum_next_3}" sum_v = sum_union_dict.get(sum_key, 0) sum_union_dict[sum_key] = sum_v + 1 num_count = len(set(item)) v = num_cnt_dict.get(num_count, 0) num_cnt_dict[num_count] = v + 1 sum_union_df = pd.Series(sum_union_dict) num_cnt_df = pd.Series(num_cnt_dict) print(sum_union_df.sort_values(ascending=False)[:20]) print(count / num_cnt_df) print(sum_union_df["14_15"])