从 Python 中的值集中删除特殊字符
Remove special character from set of values in Python
我想从 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
模块
如果您之前没有接触过正则表达式,我建议您阅读 real python.
的 tutorial
要捕获字符串中的任何非字母数字字符并将其替换为空字符串 (""
),可以简单地使用与 [^a-zA-z0-9_]
或 [=16= 相同的 "\W"
表达式] 在 re.sub()
方法中,可用于将字符串中的正则表达式模式替换为其他内容。
代码可以改写成这样;
import re
job = {'job', 'entrepreneur', 'student', 'services', 'housemaid', 'management', 'self-employed','admin.', 'blue-collar', 'technician'}
job_copy = {re.sub(r'\W', '', j) for j in job}
print(job_copy)
输出
{'technician', 'student', 'management', 'bluecollar', 'job', 'services', 'selfemployed', 'housemaid', 'entrepreneur', 'admin'}
我想从 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
模块
如果您之前没有接触过正则表达式,我建议您阅读 real python.
的 tutorial
要捕获字符串中的任何非字母数字字符并将其替换为空字符串 (""
),可以简单地使用与 [^a-zA-z0-9_]
或 [=16= 相同的 "\W"
表达式] 在 re.sub()
方法中,可用于将字符串中的正则表达式模式替换为其他内容。
代码可以改写成这样;
import re
job = {'job', 'entrepreneur', 'student', 'services', 'housemaid', 'management', 'self-employed','admin.', 'blue-collar', 'technician'}
job_copy = {re.sub(r'\W', '', j) for j in job}
print(job_copy)
输出
{'technician', 'student', 'management', 'bluecollar', 'job', 'services', 'selfemployed', 'housemaid', 'entrepreneur', 'admin'}