【发布时间】:2019-09-29 09:00:42
【问题描述】:
我想删除有问题的 test_data 列表元素,其中包含 bad_characters 和要附加到新列表 stripped_test_data 中的固定字符,但脚本不起作用。
以下代码:
test_data = ["1912", "1929", "1913-1923",
"(1951)", "1994", "1934",
"c. 1915", "1995", "c. 1912",
"(1988)", "2002", "1957-1959",
"c. 1955.", "c. 1970's",
"C. 1990-1999"]
bad_chars = ["(",")","c","C",".","s","'", " "]
def strip_characters(data):
stripped_test_data = []
for each in data:
if bad_chars in each:
tostr = str(each)
adjusted = tostr.replace(bad_chars, "")
stripped_test_data.append(tostr)
else:
adjusted = each
stripped_test_data.append(each)
return stripped_test_data
adjsuted_data = strip_characters(test_data)
运行时抛出错误:
> > TypeErrorTraceback (most recent call last) <ipython-input-1-d9d5a3a4542a> in <module>()
> 20 return stripped_test_data
> 21
> ---> 22 adjsuted_data = strip_characters(test_data)
> 23
> 24
>
> <ipython-input-1-d9d5a3a4542a> in strip_characters(data)
> 11 stripped_test_data = []
> 12 for each in data:
> ---> 13 if bad_chars in each:
> 14 tostr = str(each)
> 15 adjusted = tostr.replace(bad_chars, "")
TypeError: 'in <string>' requires string as left operand, not list
你能帮忙看看代码有什么问题以及如何进行操作吗?
【问题讨论】:
-
each in bad_chars而不是bad_chars in each。因为您在列表中搜索字符串而不是字符串中的列表。
标签: python string list loops data-science