概述
假设我有两个列表,其中包含两个人从最好到最差评价的书名. User1评级为lstA,user2评级为lstB
lstA = ['Harry Potter','1984','50 Shades','Dracula'] lstB = ['50 Shades','Dracula','Harry Potter']
用户认为’哈利波特’比’德拉库拉’更好(惠普是指数0,德古拉是指数3)
用户2认为“哈利波特”比德古拉更糟糕(惠普是指数3,德古拉是指数1)
在这种情况下,返回一个元组(‘哈利波特’,’德古拉’)[(‘德古拉’,’哈利波特’)也很好]
用户1也比’Dracula’更好地评价’50色调’,用户2也比’Dracula'(分别为2号,3号和0号)更好地评价’50色调’.在这种情况下,没有任何反应.
[('Harry Potter','50 Shades'),('Harry Potter','Dracula'),'1984'),('1984','Dracula')]
from itertools import combinations lstA = ['Harry Potter','Harry Potter'] def sign(x): """Return +1 if integer is positive,-1 if negative""" return (x > 0) - (x < 0) res = [] for a,b in combinations(lstA,2): idx_a1,idx_a2 = lstA.index(a),lstA.index(b) idx_b1,idx_b2 = lstB.index(a),lstB.index(b) if sign(idx_a1 - idx_a2) != sign(idx_b1 - idx_b2): res.append((a,b)) [('Harry Potter','Dracula')]
总结
以上是编程之家为你收集整理的python – 列出元素的比较全部内容,希望文章能够帮你解决python – 列出元素的比较所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧