我有一个看似简单的问题。我有一个数据集:存档.ics.uci.edu/ml/机器学习数据库/acute/诊断.数据 我想将“否”替换为“0”,将“是”替换为“1”
我尝试过以下代码:
fString = open("diagnosis.data","r")
fBool = open("diagnosis1.txt","w")
for line in fString:
line.replace("no","0")
line.replace("yes","1")
fBool.write(line)
fString.close()
fBool.close()
唯一发生的事情是最后一个“是/否”被添加了一个。我不知道为什么它不起作用。你知道吗
因为replace返回修改后的字符串,所以需要分配它。原作原封不动。我想你需要:
您的问题可能是open()不返回字符串列表(或其他一些iterable类型),因此您不能执行
for line in fString:
,因为这不会生成您可以.replace()
的字符串。你知道吗相反,你需要做如下事情:
这种方法得到一个字符串列表,每个字符串都是一个文件的一行,然后遍历该行。您还需要确保正确使用
.replace()
方法,因为它返回新字符串,但不修改原始字符串。你知道吗.replace string方法返回带有替换参数的字符串,但不会更改对象,因此:
你想要的是:
或使用辅助变量:
相关问题 更多 >
编程相关推荐