我一直在尝试编写一个将输入转换为小写的脚本,擦除所有元音并在每个辅音之前放置一段时间。但我的脚本总是卡住/超时。你能救我一下吗?
input = raw_input()
input1 = input.lower()
input_list = list(input1)
for letter in input_list:
if str(letter) == "a" or str(letter) == "o" or str(letter) == "y" or str(letter) == "e" or str(letter) == "u" or str(letter) == "i":
input_list.pop(input_list.index(letter))
else:
input_list.insert(input_list.index(letter) - 1, ".")
print ''.join(input_list)
答案 0 :(得分:4)
首先,您不应该在迭代时间内更改迭代,然后您可以简单地将元音放入集合中,并使用or
操作数检查成员资格,而不是使用多个in
某个项目你可以使用列表理解:
input = raw_input()
>>> input = raw_input()
this is a test
>>> ''.join(['.{}'.format(i) for i in input if i not in 'aoyeui'])
'.t.h.s. .s. . .t.s.t'
答案 1 :(得分:1)
你插入句号,然后找回自己的同一个辅音,然后你插入另一个句号,然后一直打开......
所以你陷入无限循环。
答案 2 :(得分:0)
word = "HeLLO"
print("".join(["." + i for i in re.sub("[aeiou]","",word.lower())]))
输出:
".h.l.l"