gpt4 book ai didi

python - 仅当字符串包含 ',' 时才执行?

转载 作者:行者123 更新时间:2023-11-28 20:48:11 24 4
gpt4 key购买 nike

仅当我正在搜索的字符串包含逗号时,我才尝试执行一堆代码。

这是我需要解析的一组示例行(名称是此制表符分隔文件的列标题,该列(烦人地)包含名称、学位和实践领域:

name                             
Sam da Man J.D.,CEP
Green Eggs Jr. Ed.M.,CEP
Argle Bargle Sr. MA
Cersei Lannister M.A. Ph.D.

我的问题是有些行包含一个逗号,后面跟着一个代表专业人员“实践领域”的首字母缩写词,而有些行则没有。

我的代码依赖于每行包含一个逗号的原则,我现在必须修改代码以解决没有逗号的行。

def parse_ieca_gc(s):  

########################## HANDLE NAME ELEMENT ###############################

degrees = ['M.A.T.','Ph.D.','MA','J.D.','Ed.M.', 'M.A.', 'M.B.A.', 'Ed.S.', 'M.Div.', 'M.Ed.', 'RN', 'B.S.Ed.', 'M.D.']
degrees_list = []

# separate area of practice from name and degree and bind this to var 'area'
split_area_nmdeg = s['name'].split(',')
area = split_area_nmdeg.pop() # when there is no area of practice and hence no comma, this pops out the name + deg and leaves an empty list, that's why 'print split_area_nmdeg' returns nothing and 'area' returns the name and deg when there's no comma
print 'split area nmdeg'
print area
print split_area_nmdeg

# Split the name and deg by spaces. If there's a deg, it will match with one of elements and will be stored deg list. The deg is removed name_deg list and all that's left is the name.
split_name_deg = re.split('\s',split_area_nmdeg[0])
for word in split_name_deg:
for deg in degrees:
if deg == word:
degrees_list.append(split_name_deg.pop())
name = ' '.join(split_name_deg)

# area of practice
category = area

re.search() 和 re.match() 似乎都不起作用,因为它们返回实例而不是 bool 值,所以我应该用什么来判断是否有逗号?

最佳答案

在 python 中查看字符串是否包含字符的最简单方法是使用 in。例如:

if ',' in s['name']:

关于python - 仅当字符串包含 ',' 时才执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com