我有一个字符串列表。示例字符串
mesh = "Adrenergic beta-Antagonists/*therapeutic use, Adult, Aged, Aged/*effects, Antihypertensive Agents/*therapeutic use, Blood Glucose/*drug effects, Celiprolol/*therapeutic use, Female, Glucose Tolerance Test, Humans, Hypertension/*drug therapy, Male, Middle Aged, Prospective Studies"
对于字符串中的每个术语(其中术语用逗号分隔),我想删除“/”后面的所有文本。如果没有反斜杠,什么也不做。你知道吗
例如,我希望得到的字符串是这样的
mesh = "Adrenergic beta-Antagonists, Adult, Aged, Aged, Antihypertensive Agents, Blood Glucose, Celiprolol, Female, Glucose Tolerance Test, Humans, Hypertension, Male, Middle Aged, Prospective Studies"
然后我想删除字符串中的任何重复值(例如,Aged)。所需字符串
mesh = "Adrenergic beta-Antagonists, Adult, Aged, Antihypertensive Agents, Blood Glucose, Celiprolol, Female, Glucose Tolerance Test, Humans, Hypertension, Male, Middle Aged, Prospective Studies"
我已经编写了这段适用于一个字符串的代码,但是我正在寻找一种更有效的方法来处理字符串列表:
import string
mesh = "Adrenergic beta-Antagonists/*therapeutic use, Adult, Aged, Aged/*effects, Antihypertensive Agents/*therapeutic use, Blood Glucose/*drug effects, Celiprolol/*therapeutic use, Female, Glucose Tolerance Test, Humans, Hypertension/*drug therapy, Male, Middle Aged, Prospective Studies"
newMesh = []
for each in mesh.split(","):
newMesh.append(each.split('/', 1)[0].lstrip(' '))
newMesh = list(set(newMesh))
meshString = ",".join(newMesh)
print(meshString)
注意:字符串中术语的顺序无关紧要。你知道吗
您可以使用
re.sub
:输出:
使用
re.sub()
函数和set
对象(用于更快的项目搜索):输出:
相关问题 更多 >
编程相关推荐