我有一个独特的情况,我需要比较两个数字字符串。
两个输入字符串'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"
答案 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)