Python 交换元组值以比较两个数字
我有一个独特的情况,我需要比较两个数字字符串 两个输入字符串Python 交换元组值以比较两个数字,python,tuples,Python,Tuples,我有一个独特的情况,我需要比较两个数字字符串 两个输入字符串'7771','7788' 用例是这样的,如果三个或四个数字相等,则认为它大于第二个数字。对于上述情况,由于它有三个'7',因此被认为大于7788 我需要在不使用以下代码的情况下交换元组值 m1 = [(t[1], t[0]) for t in l1] l1=[('7',3),('1',1)] l2=[('8',2),('7',2)] 我需要l1=[(3,'7'),(1,'1')]和l2=[(2,'7'),(2,'8')] 如果
'7771'
,'7788'
用例是这样的,如果三个或四个数字相等,则认为它大于第二个数字。对于上述情况,由于它有三个'7',因此被认为大于7788
我需要在不使用以下代码的情况下交换元组值
m1 = [(t[1], t[0]) for t in l1]
l1=[('7',3),('1',1)]
l2=[('8',2),('7',2)] 我需要l1=[(3,'7'),(1,'1')]和l2=[(2,'7'),(2,'8')]
如果m1==m2:
打印“相等”
elif m1
代码的正确行为应该是什么还不是很清楚,因此我将仅回答以下问题:“我需要l1=[(3,'7'),(1,'1')]和l2=[(2,'7'),(2,'8')]”
以下是一种方法:
l1 = sorted([i[::-1] for i in Counter(s1).items()], reverse=True)
或
也许你可以得到重复次数最多的值打印(计数器('7771')。最常见的(1))
,用这个值你可以实现一个比较否?在这个特定问题中,“交换元组值…”的确切含义是什么?更新了我的问题。'77788'
中“最大”的是什么,而'88877'
?仅仅重复你的答案并不能解释为什么。“2222111”和“33322”中“最大的”是什么?谢谢,我喜欢第二个解决方案。你不能用reverse=True
而不是那粗糙的lambda进行排序吗?@wim,而我没有专注于优化代码的这一部分,你肯定是对的,请编辑我的答案,这样你就可以得到一些信任。@wim我编辑我的答案是为了纳入你的建议。谢谢
if m1 == m2:
print "Equal"
elif m1 < m2:
print "First number is bigger than second"
else:
print "Second number is bigger"
l1 = sorted([i[::-1] for i in Counter(s1).items()], reverse=True)
c1 = Counter(s1)
l1 = sorted(zip(c1.values(), c1.keys()), reverse=True)