从Python中的值集中删除特殊字符
我想从Python中的一组字符串值中删除一个特殊字符 我应用下面提到的逻辑 我得到了我想要的确切输出,但是有谁能用一种更简单、更方便的方法来帮助我呢从Python中的值集中删除特殊字符,python,special-characters,Python,Special Characters,我想从Python中的一组字符串值中删除一个特殊字符 我应用下面提到的逻辑 我得到了我想要的确切输出,但是有谁能用一种更简单、更方便的方法来帮助我呢 job = {'job', 'entrepreneur', 'student', 'services', 'housemaid', 'management', 'self- employed','admin.', 'blue-collar', 'technician'} #print(job) job_copy = set() val = ''
job = {'job', 'entrepreneur', 'student', 'services', 'housemaid', 'management', 'self-
employed','admin.', 'blue-collar', 'technician'}
#print(job)
job_copy = set()
val = ''
for j in job:
if j.isalnum():
job_copy.add(j)
else:
for char in j:
if char.isalnum():
val = val+char
job_copy.add(val)
val = ''
print(job_copy)
输出
{'technician', 'housemaid', 'selfemployed', 'entrepreneur', 'job', 'services', 'admin', 'management', 'student', 'bluecollar'}
下面是一个简短的解决方案:
{re.sub('[^A-Za-z]+', '', s) for s in job}
对于
job
中的每个字符串s
,我们用空字符替换任何特殊字符(即不是大写或小写字母)。使用正则表达式和理解:
import re
output = set([re.sub('[^A-ZÜÖÄa-z0-9]+', '', s) for s in job])
为了使代码简短易懂,您可以简单地使用正则表达式,即Python中的
re
模块。如果您以前没有接触过正则表达式,我建议您阅读RealPython的文章。
要捕获字符串中的任何非字母数字字符并将其替换为空字符串(
“
”),只需使用“\W”
表达式,该表达式与[^a-zA-z0-9\]
或re.sub()
方法中的[^\W]
相同,可用于用其他内容替换字符串中的正则表达式
代码可以改写成这样
重新导入
job={'job'、'Enterpriser'、'student'、'services'、'housemaid'、'management'、'自营职业者'、'admin'、'blue collar'、'technician'}
job_copy={re.sub(r'\W','',j)代表job中的j}
打印(作业和复印件)
输出
{'technician', 'student', 'management', 'bluecollar', 'job', 'services', 'selfemployed', 'housemaid', 'entrepreneur', 'admin'}
是的,这个很容易理解。谢谢,伙计:)@KRUPALIRAO如果是的话,请投一票或将其标记为正确,即✅完成@comsavy抱歉,新手也来了,所以之前没有做过。明白了……谢谢:)