(Python)即使在替换后出现奇怪的额外引号

时间:2017-04-25 23:38:29

标签: python

所以基本上我正在使用一些字典恶作剧进行文件/ IO练习,每当我在我的字典条目中返回元组值中有一个字符串时,即使我使用.replace,它也有额外的引号。它在中间变得有点奇怪,因为在文件中有一堆口袋妖怪和"统计"用逗号分隔,有时这些名字都有逗号,所以我按照逗号分割后的列表运行了多长时间

enter image description here

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

1 个答案:

答案 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('"')专门用于从末尾删除字符(不检查中间字符)。