- def foo(num):
- while num >=10:
- num = sum(map(int,list(str(num))))
- return num
- list1 = [684, 6299800, 6041028, 2458660284, 937, 7857867, 384147026736, 888843160862, 270]
- dict1 = {v:k for k,v in zip(list(map(int,(list('123456789')))),[1, 6, 7, 4, 9, 3, 2, 5, 8])}
- d = {v:k for k,v in dict1.items()}
- x = [d[s] for s in sorted([dict1[r] for r in map(foo,list1)])]
- y = list(map(foo,list1))
- temp = list(zip(y,list1))
- result = []
- for i in x:
- for each in range(len(temp)):
- if i == temp[each][0]:
- result.append(temp.pop(each)[1])
- break
- result
- [937, 384147026736, 6299800, 684, 2458660284, 270, 6041028, 7857867, 888843160862]
复制代码
感觉写的有点麻烦 |