微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python问题:构建函数以从列表中检索元素时应用了问题

如何解决Python问题:构建函数以从列表中检索元素时应用了问题

问题: 有一场马拉松比赛,并且您有参与者列表。 (例如:[“ jack”,“ mike”,“ john”]) 参加人数是1到100000之间的随机整数。 您也有完成马拉松比赛的参与者列表。完成的参与者数量比总参与者少1。 可能有同名参与者。 您必须构建一个函数来打印未完成马拉松的参与者。

我的尝试:

def solution(participant,completion):
    for i in completion:
        if i in participant:
            participant.remove(i)
    answer = print ('"' + str(*participant) + '"')
    return(answer)

例如,如果参与者= [“ john”,“ mike”],完成= [“ john”], 预期的答案是“迈克” 我认为我尝试的代码没有错。 如果有,你们能指出我错过的部分吗? 最重要的是,有没有更优雅的方法来构建此功能

解决方法

    for i in completion:
        if i in participant:
            participant.pop(i)
    answer = print ('"' + str(*participant) + '"')
    return(answer)
,

两个可能的改进:第一,如果总是只有一个参与者没有完成。

def solution(participant,completion):
    for p in participant:
        if p not in completion:
            print( p )
            return p

如果n名参与者未完成,则为第二:

def solution(participant,completion):
    answer = []
    for p in participant:
        if p not in completion:
            print( p )
            answer.add(append)
    
    #print( answer ) # if needed
    return answer

如果您使用集合,则只需添加它们即可

def short(participant,completion):
    return set(participant) - set(completion)

请参阅:

一个小提示: 还有你的 answer = print ('"' + str(*participant) + '"')仅适用于Python 3,Python2引发SyntaxError,因为print不返回任何内容(Python 3中为None)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。