wordlist = ['cat','dog','rabbit'] letterlist = [ ] for aword in wordlist: for aletter in aword: letterlist.append(aletter) print(list(set(letterlist)))
defget_chars(): # 获取26个字符,使用ASCII码表来定位,并生成列表 chars = [chr(i) for i inrange(97, 123)] # 添加空格至列表 chars.append(chr(32)) return''.join(random.choice(chars) for _ inrange(27))
defdiff_chars(chars_list, random_chars): new_chars_list = list() [new_chars_list.append(i) for i in chars_list if i notin new_chars_list] random_chars_list = list() [random_chars_list.append(i) for i in random_chars if i notin random_chars_list]
successful_chars = list() for i in new_chars_list: if i in random_chars_list: successful_chars.append(i) score = '%.2f' % (len(successful_chars) / len(new_chars_list) * 100) return score
defget_result(): num = 0 chars = 'methinks it is a weasel' chars_list = [i for i in chars] whileTrue: random_chars = get_chars() res = float(diff_chars(chars_list, random_chars)) # 如果得分为100或次数等于10000则退出 if math.isclose(res, 100.0, abs_tol=0) or num >= 10000: print(num, random_chars) break num += 1