我有两个数组:
aaa = ['hello','banana','apple','lemon']
bbb = ['fruits','banana','apple','pear']
我希望两个数组中的每个元素(我的意思是我希望按顺序比较,例如比较aaa[0]&bbb[0]、aaa[1]&bbb[1]),如果它们相同,则返回1并计算总和,如果不相同,则返回0,并计算相同元素的百分比,在本例中,预期输出为:2/4
我写了这样一个函数:
def check(a,b):
if a==b:
return 1
else:
return 0
但是'check(aaa,bbb)'的结果是0,因为它在整体上比较了数组, 然后我试着:
def result_check(a,b):
for i,j in range(len(a)), range(len(a)):
if a==b:
return 1
else:
return 0
但给了我一个错误:
ValueError: too many values to unpack (expected 2)
我怎样才能得到我需要的结果?非常感谢
如果要使用基本for循环:
输出:
0.5英寸
编辑:
或与列表理解:
首先,函数声明缺少缩进。由于您成功地获得了解包错误,因此可能实际代码的格式正确,而您复制的代码错误。至于你的代码,它有很多错误,很难知道从哪里开始:你在两个不同的变量(
i
和j
)和两个范围上循环,当你应该有一个时,你实际上没有在循环中使用变量,你仍然在循环的每个迭代中比较整个列表,在循环中返回,这意味着它将在第一次迭代中终止。你知道吗以下是结果列表:
但你可以这么做
(这将返回一个
True
/False
的列表,但是当您取和时,它们将强制为整数。你知道吗熊猫套餐更简单:
在另一个答案中使用集合。如果您想得到所有内容都相等的索引,这可能会有所帮助,因为
ccc
只有True
或False
个条目输出:0.5
相关问题 更多 >
编程相关推荐