这里用到了itertools模块中的permutations(实质上就是排列功能),当然itertools模块中还有combinations(实质上就是组合功能),且看程序。
from itertools import permutations
li_per = list(permutations("123456"))
# li_per是[('1', '5', '2', '3', '4', '6'), ('1', '2', '3', '4', '5', '6').......]这种形式
sum = 0.0
for item in li_per:
# 将('1', '5', '2', '3', '4', '6')这种形式直接变成一个整数152346
a = int("".join([i for i in item]))
sum += a
count = len(li_per)
print("总共有{0}个数".format(count))
print("总和为:", sum)
print("平均值是:", sum/count)
执行结果如下:
当然,从数学原理上,我们可以这样想:
直接求中位数,因为平均数就是各数相加除以总各数。所以头尾相加除于2,就是平均数。最小的数是123456,最大的书是654321,所以他们的平均数是123456+654321=777777然后再除以2,得到388888.5。这和我们的程序执行的结果是一致的。