如何解决如何比较两个确切的展示位置列表?
我想比较两个列表并获得正确的展示位置数量。
我应该得到2
的输出。
vp = 0
lcodecouleur = [2,2,1,1]
userinput = [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]
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,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
为vp = vp + 1
的每个匹配项添加1。您还必须将vp
定义为全局变量。
一个内衬解决方案,使用zip()从两个列表中获取元素,如果两个数字相同,则True和sum计算True值
lcodecouleur = [2,1]
print(sum(True for i,j in zip(lcodecouleur,userinput) if i==j))
#2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。