为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据单词列表标记字符串

如何根据单词列表标记字符串

凤凰求蛊 2021-07-30 01:07:41
我想根据 Python 3.6 中的已知单词列表将变量名称转换为业务友好名称。我的已知单词列表如下所示,即第一个元素是已知单词,第二个元素是它的友好名称:Acct,AccountAccount,AccountNum,NumberNumber,NumberPayee,PayeePymt,PaymentType,Type我的变量如下所示:ACCOUNTNUMACCT_NUMACCTNUMPAYEETYPEPAYEE_TYPPYMT_DT我希望上述变量列表的输出是这样的:Account NumberAccount NumberAccount NumberPayee TypePayee TypPayment Dt我怎样才能做到这一点 ?要转换的变量名列表大约有 10,000 个。已知单词列表是 400,000。两者都在文件中可用。
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

您可以创建已知单词的翻译映射,然后使用已知单词re.split拆分变量名称,用映射单词替换匹配项,并使用另一个正则表达式替换合并空格:


import re

known_words = '''Acct,Account

Account,Account

Num,Number

Number,Number

Payee,Payee

Pymt,Payment

Type,Type'''

variables = '''ACCOUNTNUM

ACCT_NUM

ACCTNUM

PAYEETYPE

PAYEE_TYP

PYMT_DT'''

m = {k.upper(): v for line in known_words.splitlines() for k, v in (line.split(','),)}

print([re.sub(' +', ' ', ' '.join(m.get(t, t).replace('_', '').title() for t in re.split('(%s)' % '|'.join(map(re.escape, m)), v, flags=re.IGNORECASE) if t)) for v in variables.splitlines()])

这输出:


['Account Number', 'Account Number', 'Account Number', 'Payee Type', 'Payee Typ', 'Payment Dt']


查看完整回答
反对 回复 2021-08-03
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信