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



我有一个列表,

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)

给出错误TypeError:"NoneType"对象在追加到空列表时不可调用。

它在这里运行良好:

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

输出='-267'

为什么它不适用于append方法的家伙?

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 赋值

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

在替换<td>并且<td>:

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','1420','1997','1241']

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

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)

最新更新