Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.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_Replace - Fatal编程技术网

如何理解字符串格式中方括号内的花括号删除标点符号的python代码

如何理解字符串格式中方括号内的花括号删除标点符号的python代码,python,string,replace,Python,String,Replace,有人能给我解释一下'[{}]'在下面的代码中做了什么吗?我知道代码是用来删除标点符号的,但为什么它必须是方括号内的大括号呢 有什么模式吗?是否有其他类似的惯例或使用技巧 df[colname]=df[colname].str.replace('[{}]'.format(string.标点符号),'') 如果我使用以下命令,为什么会返回错误: df[colname]=df[colname].apply(lambda x:x.replace(string.标点符号“”) 有人能解释一下'[{}]

有人能给我解释一下
'[{}]'
在下面的代码中做了什么吗?我知道代码是用来删除标点符号的,但为什么它必须是方括号内的大括号呢

有什么模式吗?是否有其他类似的惯例或使用技巧

df[colname]=df[colname].str.replace('[{}]'.format(string.标点符号),'')
如果我使用以下命令,为什么会返回错误:

df[colname]=df[colname].apply(lambda x:x.replace(string.标点符号“”)
有人能解释一下
'[{}]'
在下面的代码中做了什么吗?我知道代码是用来删除标点符号的,但为什么它必须是方括号内的大括号呢

您查看的代码段太小。要了解此处发生的情况,您需要查看此字符串的上下文以及如何使用它:

'[{}]'.format(string.punctuation)
函数定义了自己的解释字符串的方法。在本例中,
{}
是一个占位符,它将被
format()
的参数替换。
[
]
只是文字字符

我们可以在Python REPL会话中运行此命令,以查看结果:

>>> import string
>>> '[{}]'.format(string.punctuation)
'[!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]'
>>>
导入字符串 >>>“[{}]”.格式(字符串.标点符号) '[!"#$%&\'()*+,-./:;?@[\\]^_`{|}~]' >>>
根据机器上的字符集和区域设置,确切的输出可能会有所不同。

您的用例是删除数据帧列中的所有标点符号?
x.replace(string.percentration“”)
将替换整个
字符串.标点符号
,如果在
x
中连续找到。它不会替换任何单个标点符号。
'[{}]'.格式(字符串.标点符号)
尝试生成与任何一个标点字符匹配的正则表达式失败,因为其中一些字符需要转义才能在正则表达式中有意义。
{}
是字符串格式的一种形式。它被
格式
函数中的值替换是的,但我想我知道@BigBounty的错误是什么谢谢你,我也注意到了。我在一些字符前添加了反斜杠。现在我使用的是
df[column]。apply(lambda x:re.sub(r'[!\“\$%”和\()*+,-.\/:;?\?\[\]^{124}++,'',x))
而且它似乎很有效?请详细说明转义的内容好吗?比如什么字符需要转义,这和我在特殊字符前添加反斜杠一样吗?如果我想学习,你能推荐一些关键字来搜索吗?非常感谢@jasonharper