我是一个编程新手,我正在创建一个配对程序,来比较我用列表存储的个性分数,下面是我的代码:
`ps = int(personality_score)
potential_partners = partners.Partners()
while potential_partners.available():
partner = []
personality_scores = []
a = potential_partners.get_name()
f = int(potential_partners.get_personality_score())
if ps == f:
print("This is your match" + a)
else:
g = abs(int(ps - f))
h = int(g)
personality_scores.append(h)
partner.append(a)
partner_compatability =list(zip(personality_scores, partner))
partner_compatability.sort(key = operator.itemgetter(0))
for sub in partner_compatability:
print(sub)`
我查看了多个与此相关的问题和答案,没有一个对我有效,我从列表中得到的结果是:
`[['Mary Smith', 1]]
[['Juan Lopez', 5]]
[['Leslie Liu', 11]]
[['Tatiana Ivanov', 15]]
[['Andre Leroy', 11]]
[['Sam Augusta', 7]]
[['Adalbert Weber', 1]]`
但应该从最低分到最高分排序:
`[['Mary Smith', 1]]
[['Adalbert Weber', 1]]
[['Juan Lopez', 5]]
[['Sam Augusta', 7]]
[['Leslie Liu', 11]]
[['Andre Leroy', 11]]
[['Tatiana Ivanov', 15]]`
印刷品
虽然不是很清楚,但是操作符函数应该比等价的lambda快。还有
attrgetter
。当键应该是多个项的元组时,两者都可以使用。你知道吗您可以直接对
partner_compatability
进行排序我试着这样做,因为没有提供列表值
从你的评论来看
(我也是一个新手程序员,直到有更好的答案)你可以做我做的:只要颠倒顺序,然后排序。你知道吗
然后:
相关问题 更多 >
编程相关推荐