如何比较两个确切的展示位置列表?



我想比较两个列表并获取正确展示位置的数量.
我应该得到这些输出的2

vp = 0
lcodecouleur = [2,2,1,1]
userinput = [1,1,1,1]
def verif_placement():
if lcodecouleur[0] == userinput[0]:
++vp
else:
pass
if lcodecouleur[1] == userinput[1]:
++vp
else:
pass
if lcodecouleur[2] == userinput[2]:
++vp
else:
pass
if lcodecouleur[3] == userinput[3]:
++vp
else:
pass

verif_placement()

将两个列表都转换为类型str,使用zip()sum()进行迭代:

lcodecouleur = [2,2,1,1]
userinput = [1,1,1,1]
lcodecouleur_new = [str(x) for x in lcodecouleur]
userinput_new = [str(x) for x in userinput]
print(sum([1 for a, b in zip(lcodecouleur_new, userinput_new) if b in a]))

输出:

2

++vp什么都不做,请改为执行以下操作:

vp = 0
lcodecouleur = [2, 2, 1, 1]
userinput = [1, 1, 1, 1]
def verif_placement():
global vp
if lcodecouleur[0] == userinput[0]:
vp += 1
else:
pass
if lcodecouleur[1] == userinput[1]:
vp += 1
else:
pass
if lcodecouleur[2] == userinput[2]:
vp += 1
else:
pass
if lcodecouleur[3] == userinput[3]:
vp += 1
else:
pass
verif_placement()

您需要使用vp += 1为每个匹配项添加 1,vp = vp + 1的缩写。您还必须将vp定义为全局变量。

单行解决方案,使用 zip() 从两个列表中获取元素,如果两个数字相同,则 True 和 sum 计算 True 值

lcodecouleur = [2,2,1,1]
userinput = [1,1,1,1]
print(sum(True for i,j in zip(lcodecouleur,userinput) if i==j))
#2

相关内容

  • 没有找到相关文章

最新更新