import re
# 随机生成1500个
flips = 'HTTHTHTTTTTHHHTHHTHTHHHHTHTHTHTHHHHHTHTTHTHTHTTHHTHHHHHHHTHTTTTTHHTHHHTTTTTHHHTTHTHTTHTHHTTTTHTTTTHHTTTHTTTTHTHTTTHHHHHHHHTTHHTTTTTTTHTTTHTTTTHTHTTHHHHTHHHTHTHHTHTTHTTTHTHHHHTHHHTHTHTHHHHHTHHTTHHHTHTHHHTHTHTTHTTTTTHHHTHTHHTTTHHTHTTTTTHTHHHHTHTHTTTHTHTHTHHTHHHTTTHHHHHHHTTHHHHHHTHTTHHHHHHHHHTTTHTHTTTHTHTHTTTHHTTHHTHHHHHTTHHHHHHTTTHTHTHTTHTTHHHHHTTTTTHTHHHTTHTTHHHTTTHHTHHTTHTHTHTHHHHTHTTHHTHHTTTHHTHHHTTHHHHTTTHTTHTTHHHTHTTHTHTTTHHHHTHHTHTTTHTTTTHHTHHHTTHHHHTHTTHHHTTTHTTHTHTTTTHHHHTTHHHTTTHHTHHHTTTTHTTHTHHHTHTHTTTTHTTHTHHHHTHTTHHHHTHTHTTHTHTHTHHTTTHTHHTTHHHHTHTTHHHTTHTTHHTTTTHTHTHTTHTTHHHHHTTTHTHTTHTHTHHHTHHTHHTTTHHTTTHTTTTTTHTHHTTHHHTHTTTTHTTTTTHHTHTTTHTHTHTTTHTTTHHTHHTHTTTTTHHHTHTTTTHHHHTTTHTHHTHHHTTTTHHTTTTHTHTHTTTHTTTHTHTTHTTHTHTTTHTTTHHHTTTHTTHHTTHTTHHHHHHTHHTHTHTHHHHHTHHTHTTHTTTHTHTHHTHHTTTHTHTTTHTHHHTTTTTHTHHTTTTHHHHHTHTTHTHHHHHHTHHHHHTHHHHTHTHHTHTHHHHTTTHHTHHTTTHHHTHHHTHTHHTTTHTTTTTTTTHHHHHTHHTTHTTHTTHHHTTTHHTTTTTHHHTTTHTTHHHTTHTHTHHHTTTTTTTHTHHHTTTTHTTHTHTHTTHTHHTTHTHTTTHTHHTHHTHTTTHHTTTHTTTHHTTHHHHTHTHHTHTTHHHHTTTHHHHHHTTTHTHHHTTHHHHHTTHTHHTHHTHTTTHTTHHTTTTTHHTHTTTHHTHHHHHTHTHHTHTHHHTHHTHHHTTTTTTHTTTHHTTHTHTTTTTHTHHTTHTTHHHHHTTHTTTTTTHHHTTHHTTHTHHTTHTHHHTHHTTHTHHHTHHTTTTTTHTTHTHHHHHTTHHTTHTTHTHHHHTTTTTHHHHTTTHHTTHHTTTHHHTTTHTTTHTHTTHHTHHHTTTHHTHTHTHTTTHTHHHTHHTHTHTTHTHHHTHTTHTHTTTTTHHTHTHTHHTHTHHHTHTHTTTTTTHTTHHTTTTHHHTHTTHHHTTHHTTHTHHTHTHTTHHHHTTTTHTTHTHHTHHHHHTHHHHTHHTTTTHTTTHHHTHTHHHHHTTTTHTTTTHTTHTTHHTHHHHHHTHHTHTHHTTHTTTHHHHTHTTHHTHTHTHTHTTHHTTTHHHHHTHTHHTHTHTTHTHT'
# 正则匹配,允许一次不同的结果,TTTHTTT或者HHHTHHH这种情况
find = re.findall('(T+HT+|H+TH+)', flips)
# 求平均值的函数
def pct(x):
# H的概率
H_pct = round(x.count('H') / len(x), 3)
# T的概率
T_pct = round(x.count('T') / len(x), 3)
# 看你给的例子是要88.9%~100%概率内
if 1 > H_pct >= 0.889 or 1 > T_pct >= 0.889:
# 返回概率和字符串
return (H_pct, T_pct), x
# 列表生成式,if过滤只有返回值的字符串
find_pct = [pct(i) for i in find if pct(i)]
print('过滤后的列表:\n', find_pct)
print('\t概率\t\t\t\t字符串')
print(max(find_pct, key=lambda x: x[0][0]))
print(max(find_pct, key=lambda x: x[0][1]))