交换元组值来比较两个数字

时间:2017-10-26 21:43:47

标签: python tuples

我有一个独特的情况,我需要比较两个数字字符串。

两个输入字符串'7771''7788'

如果三个或四个数字相等,则用例如此,则认为它大于第二个数字。对于上述情况,由于它有三个'7',因此被认为大于7788。

我需要在不使用以下代码的情况下交换元组值。

m1 =  [(t[1], t[0]) for t in l1]
from collections import Counter
def compare(s1,s2):
    l1 = sorted(Counter(s1).items(), key = lambda k: (-int(k[1]), -int(k[0])))
    l2 = sorted(Counter(s2).items(), key = lambda k: (-int(k[1]), -int(k[0])))
  

l1 = [('7',3),('1',1)]
    l2 = [('8',2),('7',2)]

我需要l1 = [(3,'7'),(1,'1')]和l2 = [(2,'7'),(2,'8')]

if m1 == m2:
    print "Equal"
elif m1 < m2:
    print "First number is bigger than second"
else:
    print "Second number is bigger"

1 个答案:

答案 0 :(得分:1)

不清楚代码的正确行为应该是什么,因此我将仅限于回答“我需要l1 = [(3,'7'), (1,'1')] and l2 = [(2,'7'), (2,'8')]这个问题。

这是一种方法:

l1 = sorted([i[::-1] for i in Counter(s1).items()], reverse=True)

c1 = Counter(s1)
l1 = sorted(zip(c1.values(), c1.keys()), reverse=True)
相关问题