我做了以下代码:
import itertools
black = "Ellie"
s = "E111e"
messagelist = list(s)
a = s.count("1")
dicta = {}
for x in messagelist:
if not x == "1":
dicta[x] = messagelist.index(x)
print(dicta)
listo = ['l', 'i', 'j',]
result = itertools.combinations_with_replacement(listo, a)
lista2 = []
for each in result:
a =str(each).replace("(", "")
a = a.replace(")", "")
a = a.replace(",", "")
a = a.replace("'", "")
a = a.replace(" ", "")
lista2.append(a)
lista3 = []
for x in lista2:
listexa = list(x)
for item in dicta:
listexa.insert(dicta[item], item)
listexa = "".join(listexa)
lista3.append(listexa)
print(lista3)
if black in lista3:
print("DELETE")
else:
print("IT'S OKAY")
black = blacklisted word
s = user writing it with numbers
问题在于包含多个等位字符的单词,如“finishing”,有2个“n”字符,因此在dict中,只会添加1个“n”,如何解决这个问题
这将为您带来好处:
(我还调整了
for
循环,在该循环中迭代组合-只是为了保持pythonish;)考虑函数^ {< CD2>} -最重要的改进。它本质上利用了}也可以接受第三个参数这一事实,这本质上定义了要进行的替换的数量-只是一次替换一个
python
{相关问题 更多 >
编程相关推荐