【问题标题】:How to distinguish first names from last names contained in array如何区分数组中包含的名字和姓氏
【发布时间】:2023-02-03 21:17:56
【问题描述】:

我有一个名为 datos 的数组,名字和姓氏的顺序是随机的

datos = ['Lucas Martinez', 'Gonzalez Carmen', 'Garcia Sofia', 'Cristian Ines Perez', 'Jorge Rodriguez']

如您所见,可能会出现一个姓氏的两个名字。

我还有一个只有名字的数组:

nombres = ['Sofia', 'Lucas', 'Cristian', 'Jorge', 'Ines', 'Carmen']

我想使用以下方案查找姓名并输出相邻姓氏:

“名字姓氏”

“名字姓氏” 喜欢:

卢卡斯·马丁内斯

卡门·冈萨雷斯

当有两个名称时将其分成两个单独的数据:

克里斯蒂安佩雷斯

伊内斯佩雷斯

我可以用这个找到名字:

any(i.split()[0] in nombres for i in datos)

def verificacion(a, b):
    res = [i.split()[0] for i in a if i.split()[0] in b]
    return res

print(verificacion(datos, nombres))

但仅适用于名称在前的模式

【问题讨论】:

  • “这里将有两个名字和一个姓氏”——没有这样的
  • 他们认为他们的意思是'Cristian Ines Perez',它的姓氏Perez前面有两个名字。
  • 对于 3 部分名称,您将如何确定名称是否为姓氏而不是姓氏?你手边有名称库吗?
  • 是的,我的意思是“Cristian Ines Perez”,其中“Cristian”和“Ines”是名字,“Perez”是姓氏

标签: python


【解决方案1】:

你可以这样做:

datos = ['Lucas Martinez', 'Gonzalez Carmen', 'Garcia Sofia', 'Cristian Ines Perez', 'Jorge Rodriguez']

for name in datos:
    splitname = name.split()
    for firstname in splitname[:-1]:
        print(firstname, splitname[-1])

输出:

Lucas Martinez
Gonzalez Carmen
Garcia Sofia
Cristian Perez
Ines Perez
Jorge Rodriguez

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多