Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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_Special Characters - Fatal编程技术网

从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 = ''

我想从Python中的一组字符串值中删除一个特殊字符

我应用下面提到的逻辑

我得到了我想要的确切输出,但是有谁能用一种更简单、更方便的方法来帮助我呢

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抱歉,新手也来了,所以之前没有做过。明白了……谢谢:)