Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 交换元组值以比较两个数字_Python_Tuples - Fatal编程技术网

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)