【发布时间】:2017-03-14 19:35:19
【问题描述】:
我是一名 Python 学习者。试图从字符串列表中删除标点符号并创建一个新列表但失败了。
string_list = ['Jingle Bells.', "Donkey Kong's", "Jumping Jehosophat;"]
strings_modified = []
for s in string_list:
strings_modified.append.str(s).translate(None, string.punctuation)
我收到的错误是:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-316-5c979f5c8af8> in <module>()
2 strings_modified = []
3 for s in string_list:
----> 4 strings_modified.append.str(s).translate(None, string.punctuation)
AttributeError: 'builtin_function_or_method' object has no attribute 'str'
【问题讨论】:
-
追加后需要括号,不需要转换为字符串:strings_modified.append(s.translate(None, string.punctuation))
-
不要使用
append.str(s)使用append(str(s)) -
问题是我的类型是unicode。
type(string_list[0])是unicode。如果我不使用 str ,我会收到此错误:TypeError: translate() takes exactly one argument (2 given)。所以我最终使用str(s)。但这会产生另一组问题。当我尝试做for sm in strings_modified: strings_modified.append(sm.replace(" ", "+"))时,python 只是挂起。 . . -
@PrestonHager 是对的。它仍然将其转换为字符串。
标签: python string list punctuation