擅长:python、mysql、java
<p><strong>您的版本已修改</strong></p>
<p>基本上,我们分割aName,然后循环rollCall,尝试匹配所有名称。如果其中一个匹配,则返回<strong>true</strong>。否则,返回<strong>false</strong></p>
<pre><code>def nameFinder(rollCall, aName):
studentName = aName.split(" ")
for name in rollCall:
rollCallName = name.split(" ")
if rollCallName[0] == studentName[0] or rollCallName[1] == studentName[1]:
return True
return False
rollCall = "Bobby Lee", "Margaret Me"
print(nameFinder(rollCall, "Bob Ce"))
</code></pre>
<p><strong>占用较少行数的版本</strong></p>
<p>以下代码将首先将两个列表合并为first、Last、First2、Last2,然后根据输入的名称进行扫描,如果至少有一个匹配,则返回true:</p>
<pre><code>def nameFinder(rollCall, aName):
array_merged = [partName for fullname in rollCall for partName in fullname.split(" ")]
return any([checkingPartName in array_merged for checkingPartName in aName.split(" ")])
rollCall = ["Bobby Lee", "Margaret Me"]
print(nameFinder(rollCall, "Bob Ce"))
</code></pre>
<p>注意:由于我们正在检查列表中是否存在任何一个名称,我认为合并两个列表将简化代码。然而,如果只给你[“Bobby Lee”,“Margaret Me”],那么这个函数将像一个符咒一样工作</p>