Python 通过传递secret作为参数来调用findUniqueDigits函数,并存储返回列表
有人能帮我理解这条线想让我做什么吗?谢谢Python 通过传递secret作为参数来调用findUniqueDigits函数,并存储返回列表,python,list,function,return,call,Python,List,Function,Return,Call,有人能帮我理解这条线想让我做什么吗?谢谢 findCows函数:编写一个名为“findCows”的函数,该函数将两个字符串值作为参数(比如secret、guess),并返回guess中的位数,该数字仅与secret中的数字匹配,而不与位置匹配。假设每个字符串中正好有4位数字。例如,findCows(“1807”、“7810”)将返回3 def findCows(secret, guess): sum([x!=y for (x, y) in zip(secret, guess)]) zip(
findCows函数:编写一个名为“findCows”的函数,该函数将两个字符串值作为参数(比如secret、guess),并返回guess中的位数,该数字仅与secret中的数字匹配,而不与位置匹配。假设每个字符串中正好有4位数字。例如,findCows(“1807”、“7810”)将返回3
def findCows(secret, guess):
sum([x!=y for (x, y) in zip(secret, guess)])
zip(secret,guess)
将两个大小相同的列表转换为元素对列表。zip(secret,guess)中的[x!=y for(x,y)]
语句是一个for
理解语句,根据它们的相等性将每对映射到True
/False
。最后,sum
计算True
值的数量。您可以使用过滤函数:
len(list(filter( lambda x: x[0]!= x[1], zip(secret ,guess))))
findCows函数:编写一个名为“findCows”的函数,该函数将两个字符串值作为参数(比如secret、guess),并返回guess中的位数,该数字仅与secret中的数字匹配,而不与位置匹配。假设每个字符串中正好有4位数字。例如,findCows(“1807”、“7810”)将返回3。注释并不意味着长期存在。通过将其包含在内来完成您的问题。您的函数是错误的,它将返回不同元素的数目,而这不是op要求的。@nino_705误读了原始问题,答案是固定的。在任何情况下,就实现而言,差异都是微不足道的。您的代码给出了两个集合的交集,如果您阅读海报对该问题的评论,您会注意到他要求的是位置错误的常见元素。我知道,答案已经更新了……现在这是一个聪明的答案;)实际上,您可以省略
列表
类型转换,因为过滤器
已返回该类型。过滤器返回一个过滤器
对象,该对象不支持len
函数您是对的,我使用的是Python 2.x。它看起来像是Python 3的过滤器对象:。