Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从字典的键和值中删除字符?_Python_String_Dictionary_Strip - Fatal编程技术网

Python 从字典的键和值中删除字符?

Python 从字典的键和值中删除字符?,python,string,dictionary,strip,Python,String,Dictionary,Strip,我正在编写一个例程,以从一个在web抓取过程中动态构建的字典中删除句点“.”。下面是我正在使用的代码,它似乎可以正确地删除字典值y的句点,但不删除键x 有没有关于如何解决这个问题的指导 def dot_be_gone(dirty_dic): clean_dic = {} for x,y in dirty_dic.items(): clean_x = str(x).strip('.') clean_y = str(y).strip('.')

我正在编写一个例程,以从一个在web抓取过程中动态构建的字典中删除句点“.”。下面是我正在使用的代码,它似乎可以正确地删除字典值y的句点,但不删除键x

有没有关于如何解决这个问题的指导

def dot_be_gone(dirty_dic):
    clean_dic = {}
    for x,y in dirty_dic.items():
        clean_x = str(x).strip('.')
        clean_y = str(y).strip('.')
        clean_dic[clean_x] = clean_y
    return(clean_dic)

dot_be_gone({"No. of Pets":"1", "No Problem":"Okay..."})
执行时会产生以下结果:

{“宠物数量”:“1”,“没问题”:“好的”} 正如您所看到的,句点从第二个值中删除,而不是从第一个键中删除。

仅从开始和结束修剪字符,请改用

{'No of Pets':'1','No Problem':'ok'}

仅从起点和终点修剪字符,请改用

{'No of Pets':'1','No Problem':'ok'}


按照你的算法,我想出了一个解决方案

方法1:使用方法条的简单方法

方法2:使用方法替换


按照你的算法,我想出了一个解决方案

方法1:使用方法条的简单方法

方法2:使用方法替换


我不知道为什么这样做不起作用,但您可以使用.replace方法,该方法使用str替换第一个参数中的str,并将str放置在第二个参数中删除的str的位置,从而得出:

 clean_x = x.replace(".", "")
 clean_y = y.replace(".", "")

我不知道为什么这样做不起作用,但您可以使用.replace方法,该方法使用str替换第一个参数中的str,并将str放置在第二个参数中删除的str的位置,从而得出:

 clean_x = x.replace(".", "")
 clean_y = y.replace(".", "")

strip仅从字符串的开头和结尾删除字符。使用replace.strip仅删除字符串开头和结尾的字符。使用替换。为什么不使用。替换?这个解决方案设计过度。它还假设字符串中只有一个“.”。。。还有,为什么要保留条纹呢???在一个他们什么都不会做的分支里。为什么要对str进行无关调用?也可以使用replace方法。上面,@zamir使用此方法。为什么不使用。替换?这个解决方案设计过度。它还假设字符串中只有一个“.”。。。还有,为什么要保留条纹呢???在一个他们什么都不会做的分支里。为什么要对str进行无关调用?也可以使用replace方法。上面,@zamir使用这种方法。
def dot_be_gone(dirty_dic):
    clean_dic = {}
    for x, y in dirty_dic.items():
        clean_x = x.replace('.', "")
        clean_y = y.replace('.', "")
        clean_dic[clean_x] = clean_y
    return(clean_dic)

x = dot_be_gone({"No. of Pets":"1", "No Problem":"Okay..."})
print(x) # {'No of Pets': '1', 'No Problem': 'Okay'}
 clean_x = x.replace(".", "")
 clean_y = y.replace(".", "")