如何从不同的元组返回具有相同索引的两个元素?

时间:2018-02-22 16:40:32

标签: python

任务说我必须用输入字符串创建一个函数。在函数内部,我有两个元组。第一个 - 对于姓名,第二个 - 对于姓氏,如果此字符串包含来自第一个元组的名称,则必须使用具有相同索引的姓氏返回此名称。

这就是我所做的:

def find_full_name(text):
    if not text or type(text) != str:
        return text
names = ("Joe", "Scott", "John", "Stephen")
surnames = ("Warren", "Rixner", "Greiner", "Wong")
for name in names:
    if name in text:
        return name

我的代码只返回名称,我也无法弄清楚如何返回姓氏。我一直在尝试比较names.index()== surnames.index()之类的索引,但我没有帮助。

2 个答案:

答案 0 :(得分:2)

您可以在名称元组中找到名称的索引:

ix = names.index(name)

然后你可以用该索引索引另一个元组:

return (name, surnames[ix])

或者(并且更有效率),您可以改变循环以首先使用索引:

for ix in range(len(names)):
    name = names[ix]
    if name in text:
        return (name, surnames[ix])

答案 1 :(得分:0)

您可以使用Index方法从名称元组的索引中检索姓氏。

def find_full_name(text):
    names = ("Joe", "Scott", "John", "Stephen")
    surnames = ("Warren", "Rixner", "Greiner", "Wong")
    if not text or type(text) != str:
        return text
    else:
        for name in names:
            if name in text:
                return surnames[names.index(name)]