如何使用列表理解删除字符串中的标点符号?

问题描述

如何使用列表解析去除字符串中的标点符号

class <YOUR_MODEL> extends Model
{   
    protected $fillable = [ 'column_name_1','column_name_2',..,'column_name_n' ];
}

我知道如何使用 For 循环:

punctuations="!@#$%^&*()_-=+:;{}[]<>,.?/\''"
analyzed=""
text="This is ;;;; $# @#%@$ A String <>?::"

但是我如何使用列表理解来做到这一点?

解决方法

punctuations="!@#$%^&*()_-=+:;{}[]<>,.?/\''"
analyzed=""
text="This is ;;;; $# @#%@$ A String <>?::"

试试这个

>>[c for c in text if c not in punctuations]

您将获得:

['T','h','i','s',' ','A','S','t','r','n','g',' ']

如果您希望将其作为单个字符串,只需加入所有字符串即可。

>>''.join(c for c in text if c not in punctuations)
'This is    A String '
,

使用生成器,并将其作为参数传递给 join() 以将结果转换回字符串。

analyzed = ''.join(c for c in text if c not in punctuations)
print(analyzed)
,

你可以先把你的标点符号和字符串转换成一个列表,然后分开,如下:

element

输出:

import string

list = ["!","This","@","#","$","is","%","a","^","&","list","*","(",")"]

list2 = [idx for idx in list if not any(punc in idx for punc in string.punctuation)]

print(str(list2))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...