如何在Python中检查名字列表中的名字和姓氏?可能吗?

2024-09-28 21:56:02 发布

您现在位置:Python中文网/ 问答频道 /正文

场景是这样的,我检查列表中的两个字符串,我有一个包含名字字符串的变量,还有一个包含姓氏的变量。以及仅包含其全名字符串的列表。我试着使用“and”,这样如果名字和姓氏都是真的,我们就可以说列表中的全名确实是真的,我希望它们与它的原始全名列表进行比较,这样它会给我一个布尔值true。但我有问题,因为如果我改变其中一个,它仍然会给出一个正确的结果。我的设想可能吗?或者,如果没有,是否有任何解决办法?这是代码的想法,这不起作用,我只是用它来解释我的工作,我希望这可能有助于形象化我的问题

      first_name = 'John Eric'
      last_name = 'Delos Santos'
      list = ['Delos Santos, John Eric', 'Delos Santos, John Eric', 'Delos Santos, John Eric', 'Delos Santos, John Eric', 'Delos Santos, John Eric']


      if last_name and first_name in list:
         print(True)

      else:
         print(False)

我将感谢您的友好回复,谢谢


Tags: and字符串name列表场景名字johnlist
2条回答

从您的示例来看,在list中似乎存在一种模式可能性,即<lastname>, <firstname>。所以你可以在list中搜索这个字符串

你的病情可能会恶化

if f"{last_name}, {first_name}" in list:
  print(True)
else:
  print(False)

如果这样的模式不一致,那么您可以使用它来查找结果

result = next((True for i in list if first_name in i and last_name in i), False)
print(result)

这将迭代所有名称,并检查每个字符串中是否出现first_namelast_name。如果成功,它将返回True,否则它将返回到可以打印的False

我假设列表总是以相同的方式排序,因此您可以执行以下操作:

    first_name = 'John Eric'
    last_name = 'Delos Santos'
    YourList = ['Delos Santos, John Eric', 'Delos Santos, John Eric', 'Delos Santos, John Eric', 'Delos Santos, John Eric', 'Delos Santos, John Eric']
    
    full_name = last_name + ", " + first_name
    
    if full_name in YourList:
         print(True)
    else:
         print(False)

如果没有,请告诉我

相关问题 更多 >