【发布时间】:2015-03-28 02:01:12
【问题描述】:
我在删除时阅读了几篇关于这个跳过字符的帖子,但没有找到解决方案
我正在尝试在 python 2.7 中制作反元音程序,但卡在多个点上。!!
- 就像在我的程序中一样,我制作了一个 list 的副本以对其进行迭代,以便如果在全局定义的元音列表中找到元音,我可以从原始列表中删除元音,但它正在跳过字符! (可能是因为增加了索引)
- 使用较低的函数时,我的程序有时会给出列表分配索引超出范围错误!!。这是与内存分配或其他有关的东西。 (因为,当我删除它时,程序运行良好!!)
请帮忙改正。
代码:
import copy
vowels=['a','e','i','o','u'] # Making list of vowels
#Function for anti_vowel
def anti_vowel(text):
new_list=list(text) # Converting it into list
new_list_copy=copy.deepcopy(new_list) # Copying the list to iterate
res="" # For converting back to string
for index, j in enumerate(new_list_copy):
m = j.lower() # Converting it into a lower-case for comparison
if m in vowels:
del(new_list[index]) # Deleting if a vowel is in list(HERE IS THE PROBLEM)
return res.join(new_list)
print anti_vowel("HeEY lOok Word!")
P.S:我通过在新列表中追加替换 DELETE 函数使其工作:
if j.lower() not in vowels:
x.append(j) #x is a new list
但需要使用删除功能的解决方案
提前谢谢!!
【问题讨论】:
标签: python python-2.7 for-loop enumerate