我试图删除我的代码块中的元音。但是,我收到了一个我不明白的错误。我做错了什么?
def remove_vowel(list):
for num in range(0,len(list)):
try:
list.remove('a','e','i','o','u')
except:
new_str = ''.list.join(list)
return newstr
remove_vowel(['p','e','o','p','l','e'])
编辑:我得到的错误是:
Traceback (most recent call last):
File "remove_vowel.py", line 10, in <module>
print(remove_vowel(['p','e','o','p','l','e']))
File "remove_vowel.py", line 8, in remove_vowel
new_str = ''.list.join(list)
AttributeError: 'str' object has no attribute 'list'
答案 0 :(得分:1)
我猜你得到的错误是remove()
只有一个参数。示例 -
>>> l = [1,2,3]
>>> l.remove(1,2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: remove() takes exactly one argument (2 given)
第二个问题是没有 - ''.list
- str没有list
属性。
这就是为什么你不能做像 -
这样的事情list.remove('a','e','i','o','u')
一种简单的方法来做你想要的就是使用一个没有任何元音的新列表。示例 -
def remove_vowel(l):
return ''.join([x for x in l if x.lower() not in ['a','e','i','o','u']])
我正在返回连接的字符串,因为这也是你似乎要返回的内容。
示例/演示 -
>>> def remove_vowel(l):
... return ''.join([x for x in l if x.lower() not in ['a','e','i','o','u']])
...
>>> remove_vowel(['p','e','o','p','l','e'])
'ppl'