预热速度.【难度:2级】:
答案1:
def f(n
):
dr
= sum(map(int, str(n
)))
deep
= sum(d
*d
for d
in map(int, str(dr
)))
return (-dr
-deep
, n
)
def sorted_comm_by_digs(arr1
, arr2
):
return sorted(set(arr1
) &
; set(arr2
), key
=f
)
答案2:
def dr(n
):
return sum(int(i
) for i
in str(n
))
def dsddr(n
):
return sum(int(i
)**2 for i
in str(dr
(n
)))
def f(n
):
return dr
(n
) + dsddr
(n
)
def sorted_comm_by_digs(arr1
, arr2
):
arr1
= set(arr1
)
arr2
= set(arr2
)
common_elements
= sorted(arr1
.intersection
(arr2
))
return sorted(list(common_elements
), key
=f
, reverse
=True)
答案3:
dr
= lambda n
: sum(map(int, str(n
)))
dsddr
= lambda n
: sum(int(c
)**2 for c
in str(dr
(n
)))
f
= lambda n
: dr
(n
) + dsddr
(n
)
def sorted_comm_by_digs(arr1
, arr2
):
return sorted({x
for x
in set(arr1
).intersection
(arr2
)}, key
=lambda x
: (-f
(x
), x
))
答案4:
def split_num(n
):
return map(int, str(n
))
def f(num
):
dr
= sum(split_num
(num
))
dsddr
= sum(n
*n
for n
in split_num
(dr
))
return (-dr
- dsddr
, num
)
def sorted_comm_by_digs(arr1
, arr2
):
return sorted(set(arr1
) &
; set(arr2
), key
=f
)
答案5:
def dr(n
):
return sum(map(int, str(n
)))
def dsddr(n
):
return sum(int(j
) ** 2 for j
in str(dr
(n
)))
def f(n
):
return (-(dr
(n
) + dsddr
(n
)), n
)
def sorted_comm_by_digs(arr1
, arr2
):
return sorted(set(arr1
) &
; set(arr2
), key
=lambda x
: f
(x
))
答案6:
def sorted_comm_by_digs(arr1
, arr2
):
def f(n
):
out
= n
dr
= 0
while n
:
dr
, n
= dr
+ n
% 10, n
// 10
dsddr
= 0
n
= dr
while n
:
a
= n
% 10
dsddr
, n
= dsddr
+ a
*a
, n
// 10
return -(dr
+ dsddr
), out
return sorted(set(arr1
).intersection
(arr2
), key
=f
)
答案7:
sorted_comm_by_digs
=lambda a
,b
:sorted(set(a
)&
;set(b
),key
=lambda n
:(-sum(map(int,str(n
)))-sum(int(d
)**2for d
in str(sum(map(int,str(n
))))),n
))
答案8:
def H(Q
):
R
,S
=0,Q
while S
:R
,S
=R
+S
%10,S
//10
S
=R
while S
:R
,S
=R
+(S
%10)**2,S
//10
return-R
,Q
from collections
import*
sorted_comm_by_digs
=lambda Q
,S
:sorted(Counter
(Q
)&
;Counter
(S
),key
=H
)
答案9:
def sorted_comm_by_digs(a
, b
):
f
= lambda x
: sum(map(int, str(x
)))
g
= lambda x
: x
+ sum(map(lambda y
: int(y
)**2, str(x
)))
return sorted(set(a
) &
; set(b
), key
=lambda x
: (g
(f
(x
)), -x
), reverse
=True)
答案10:
def f(n
):
dr
= sum(map(int, str(n
)))
deep
= sum(d
*d
for d
in map(int, str(dr
)))
return (-dr
-deep
, n
)
def sorted_comm_by_digs(arr1
, arr2
):
return [v
for _
,v
in sorted(map(f
, set(arr1
) &
; set(arr2
)))]
景越Python基础训练营QQ群
欢迎各位同学加群讨论,一起学习,共同成长!
转载请注明原文地址: https://mac.8miu.com/read-512243.html