gpt4 book ai didi

python - 如何在Python中拆分不包含分隔符的串联字符串?

转载 作者:行者123 更新时间:2023-12-02 18:29:40 24 4
gpt4 key购买 nike

假设我有一个连接名字 + 姓氏组合的列表,如下所示:

["samsmith","sallyfrank","jamesandrews"]

我还有列表possible_firstnamespossible_lastnames .

如果我想根据 possible_firstnames 中出现的值拆分这些全名字符串和possible_lastnames ,最好的方法是什么?

我最初的策略是比较全名字符串和每个 possible_firstnames 之间的字符。/possible_lastnames值一一对应,我会在发现匹配项时分割全名字符串。但是,我意识到,例如,如果包含“Sal”作为可能的名字(我的代码会尝试将“sallyfrank”转换为“Sal Lyfrank”等),我会遇到问题。

我的下一步是交叉检查“sal”之后字符串中剩余的内容与 possible_lastnames 中的值在完成分割之前,但这开始变得复杂,所以我想知道是否有一个我从一开始就忽略的更简单的选择?

我使用的语言是 Python。

最佳答案

如果您获得相似的名称,例如 sam、samantha 和 saman,请将它们按相反的顺序排列,以便最短的位于最后

full_names = ["samsmith","sallyfrank","jamesandrews", "samanthasang", "samantorres"]
first_name = ["sally","james", "samantha", "saman", "sam"]

matches = []

for name in full_names:
for first in first_name:
if name.startswith(first):
matches.append(f'{first} {name[len(first):]}')
break

print(*matches, sep='\n')

结果

sam smith
sally frank
james andrews
samantha sang
saman torres

这不会选出像 Sam Antony 这样的名字。它会将其显示为“*Saman Tony”,在这种情况下,您的姓氏想法就可以了。

它也不会挑选出Sam Anthanei。如果您的姓氏列表中包含这三个姓氏,则这可能是 Samantha Nei、Saman Thanei 或 Sam Anthanei。

关于python - 如何在Python中拆分不包含分隔符的串联字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69593387/

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