gpt4 book ai didi

Python - 与其他字符串一样的单词大写

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:17 25 4
gpt4 key购买 nike

我有两个包含全名的字符串。对于全名中的每个名称,如果该名称出现在另一个字符串中,我想交叉引用它在另一个字符串中的大写形式。然后我想将它在另一个字符串中的大写方式替换回原始字符串。

这是我做过的尝试之一:

alt_name = 'John A. desmith'
name = 'John R. DeSmith'

alt_names = alt_name.split()
for i in range(len(alt_names)):
if alt_names[i] in name:
alt_names[i] = re.findall(alt_names[i], name, flags=re.IGNORECASE)
alt_names

期望的结果:

John A. DeSmith

最佳答案

如果您不关心保留空格的数量,这样的方法会起作用,并且可能比使用正则表达式更快:

alt_name = 'John   A. desmith'
name = 'John R. DeSmith'
d = {s.lower(): s for s in name.split()}
corrected_alt_name = ' '.join(d.get(s.lower(), s) for s in alt_name.split())
print(corrected_alt_name)

John A. DeSmith

如果您确实关心空格,那么您可以使用 re.split()而不是描述的 str.split() here :

import re
corrected_alt_name = ''.join(d.get(s.lower(), s) for s in re.split(r'(\s+)', alt_name))
print(corrected_alt_name)

关于Python - 与其他字符串一样的单词大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50804061/

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