R7-4 按1的个数排序 Python

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

R7-4 按1的个数排序
分数 10
作者 usx程序设计类课程组
单位 绍兴文理学院
对于给定若干由0、1构成的字符串(长度不超过80),要求将它们按1的个数从小到大排序。若1的个数相同,则按字符串本身从小到大排序。 要求至少使用一个自定义函数。

输入格式:
测试数据有多组,处理到文件尾。对于每组测试,首先输入一个整数n(1≤n≤100),然后输入n行,每行包含一个由0、1构成的字符串。

输出格式:
对于每组测试,输出排序后的结果,每个字符串占一行。

输入样例:
3
10011111
00001101
1010101
输出样例:
00001101
1010101
10011111

def fun(x):
    return len(x.replace('0',''))

n = int(input())
nums = []
for i in range(n):
    nums.append(input())

print('\n'.join(sorted(sorted(nums),key=fun)))

还是用字典排序容易些,但要考虑多关键字排序, 以及键值唯一性,即录入字串在有相同的怎么处理?

n = int(input())
lst = []

for i in range(n):
    lst.append(input())

dic = { s:(s.count('1'),lst.count(s)) for s in lst }

for i in sorted(dic.items(),key=lambda e:(e[1][0],e)):
    for _ in range(i[1][1]):
        print(i[0])