无法对列表元素执行字符串操作

Unable to perform string operations on the list elements

我有一个列表,

list1 = [<td>-267</td>, <td>1,420</td>, <td>1,997</td>, <td>1,241</td>]

我想从里面的项目中删除 <td></td> ,所以我这样做了:

# Created empty list:
final = []

# then,
for i in list1:
    i.replace('<td>', '').replace('</td>', '')
    final.append(i)

给出错误类型错误:'NoneType'对象在附加到空列表时不可调用。

在这里工作正常:

a = '<td>-267</td>'
a.replace('<td>', '').replace('</td>', '')

输出='-267'

为什么它不能与 append 方法一起使用?

你做的差不多对了,只是你错过了给 i 赋值

Created empty list:
final = []
then,
for i in list1:
    i=i.replace('<td>', '').replace('</td>', '')
    final.append(i)
list1 = ['<td>-267</td>', '<td>1,420</td>', '<td>1,997</td>', '<td>1,241</td>']
final = []

for i in list1:
    i = i.replace('<td>', '').replace('</td>', '')
    final.append(i)
print(final)

首先你的列表应该是字符串值,然后试试上面的代码

替换 和 后,您必须将其分配回变量 'i':

final1 = []
for i in ["<td>-267</td>", "<td>1,420</td>", "<td>1,997</td>", "<td>1,241</td>"]:
    i = i.replace("<td>", "").replace("</td>", "")
    final1.append(i)
print(final1)

输出:['-267', '1,420', '1,997', '1,241']

您没有将值重新分配给 i字符串 是不可变的数据类型,因此 replace 方法 returns 字符串的副本,其中所有出现的子字符串都是替换为另一个子字符串。

list1 = ["<td>-267</td>", " <td>1,420</td>", " <td>1,997</td>", " <td>1,241</td>"]

final = []
for i in list1:
    i = i.replace('<td>', '').replace('</td>', '')
    final.append(i)
print(final)