Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过传递secret作为参数来调用findUniqueDigits函数,并存储返回列表_Python_List_Function_Return_Call - Fatal编程技术网

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的
过滤器
对象:。