【发布时间】:2016-09-25 20:45:08
【问题描述】:
我正在从文本文件中读取数据,因此每一行都是一个字符串列表,所有这些列表都在一个数据列表中。所以我的列表看起来像:
data = [row1, row2, etc.]
row1 = [str1, str2, etc.]
我正在尝试删除出现在行列表中的字符串中的任何 $ 或 % 符号。我已经检查过,如果我尝试对一个单独的元素执行此操作,例如第二行和第四个元素有一个“%”,所以:
data[1][3] = data[1][3].replace("%","")
这将正确删除它,但是当我尝试使用嵌套的 for 循环来完成所有操作时:
for row in data:
for x in row:
x = x.replace("%","")
x = x.replace("$","")
这不会删除任何 % 或 $ 符号,我尝试在没有第二次替换的情况下这样做,看看它是否至少会删除 % 符号,但即使这样也没有用。
任何想法为什么这不起作用,或者我怎么能做到这一点?
提前感谢您的帮助!
【问题讨论】:
-
请不要使用
str作为 Python 中变量的名称。也是一个函数! -
for-in不会影响实际列表,因为元素被存储/复制到变量中,它不是直接引用。使用枚举和访问列表。 -
我会更新的,我的代码中实际上并没有这种方式,为了清晰起见,我只是这样写的。
-
@CRT 我还进行了编辑以显示代码的第二个问题和使用 enumerate() 的简单补救措施。
标签: python python-2.7