所以基本上我正在使用一些字典恶作剧进行文件/ IO练习,每当我在我的字典条目中返回元组值中有一个字符串时,即使我使用.replace,它也有额外的引号。它在中间变得有点奇怪,因为在文件中有一堆口袋妖怪和"统计"用逗号分隔,有时这些名字都有逗号,所以我按照逗号分割后的列表运行了多长时间
def read_info_file(filename):
d={}
with open(filename,'r') as f:
next(f)
for line in f:
h=line.split(',')
if len(h)==7:
h[1]=str(h[1]+','+h[2])
h[2]=h[3]
h[3]=h[4]
h[4]=int(h[5])
h[5]=h[6]
h[1].replace("\"","")
h[2].replace("\"","")
h[3].replace("\"","")
h[5].replace("\"","")
#if there are more than 5 items due to a naming convention
#concatanate the name parts and reorder the list properly
d[h[1]]=int(h[0]),h[2],h[3],int(h[4]),h[5]
#final assignment
return d
答案 0 :(得分:0)
Python str
是不可变的; str.replace
返回一个新字符串,它不会更改现有字符串。替换,然后扔掉了结果。
您需要为要删除的引号分配结果,例如替换:
h[1].replace("\"","") # Does replace and throws away result
使用:
h[1] = h[1].replace("\"","") # Does replace and replaces original object with new object
注意:如果您只是试图去除引号和尾随引号,我建议h[1] = h[1].strip('"')
专门用于从末尾删除字符(不检查中间字符)。