python 7.11 练习
2021-04-20 06:28
标签:eve div 元素 函数 key set 数字 while aaa 1. 返回列表中出现最多的数字, 如果出现的次数一样多,返回数值大的那个 2. 找出两句话中不同的部分, 要求字母为小写 小于等于1个的不考虑,排序 1. 长度,2. 开头数字,3.字母表 即 自己写的 别人写的 python 7.11 练习 标签:eve div 元素 函数 key set 数字 while aaa 原文地址:https://www.cnblogs.com/adelinebao/p/13286089.htmldef highest_rank(arr):
a = max([arr.count(i) for i in arr])
b = set()
for i in arr:
if arr.count(i) == a:
b.add(i)
return max(b)
print(highest_rank([12, 10, 8, 12, 7, 6, 4, 10, 12,11,11,11])) #12
def highest_rank(arr):
return sorted(arr,key=lambda x: (arr.count(x),x))[-1]
# sorted(iterable, cmp=None, key=None, reverse=False)
# iterable 可迭代对象
#cmp:比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
#key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
#reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
# 此题中 key = lambda x: (arr.count(x),x) 即排序不仅升序排,还按照出现的次数排
mix(" In many languages", " there‘s a pair of functions")
#"1:aaa/1:nnn/1:gg/2:ee/2:ff/2:ii/2:oo/2:rr/2:ss/2:tt")
def lowa(s):
l = []
for i in s:
if ord(i) > 96 and ord(i) != 32:
l.append(i)
return sorted(l,key=lambda x: (l.count(x),x),reverse=True)
def mix(s1, s2):
l1 = lowa(s1)
l2 = lowa(s2)
l = []
while l1 != []:
a = l1[0]
if l1.count(a) >1 or l2.count(a)>1:
if l1.count(a)> l2.count(a):
l.append(‘1:‘+ (a* l1.count(a)))
elif l1.count(a) == l2.count(a):
l.append(‘=:‘+(a* l1.count(a)))
else:
l.append(‘2:‘+(a * l2.count(a)))
l1 = [x for x in l1 if x != a]
l2 = [y for y in l2 if y != a]
else:
l1 = [x for x in l1 if x != a]
l2 = [y for y in l2 if y != a]
while l2 != []:
if l2.count(l2[0])>1:
l.append(‘2:‘ + (l2[0] * l2.count(l2[0])))
l2 = [y for y in l2 if y != l2[0]]
else:
l2 = [y for y in l2 if y != l2[0]]
w = sorted(l,key= lambda x:(-len(x),ord(x[0]),ord(x[-1])),)
d = ‘/‘.join(w)
return d
from collections import Counter
def mix(s1, s2):
c1 = Counter(filter(str.islower, s1)) # 注意filter 和Counter :Counter 生成字典 {‘e‘,5} 指 e 有5个
c2 = Counter(filter(str.islower, s2))
res = []
s= set(c1.keys() | c2.keys())
for c in s:
n1, n2 = c1.get(c, 0), c2.get(c, 0) # 如果有c 返回c1当中相应的key 值,如果没有返回0
if n1 > 1 or n2 > 1:
res.append((‘1‘, c, n1) if n1 > n2 else
(‘2‘, c, n2) if n2 > n1 else (‘=‘, c, n1))
res = [‘{}:{}‘.format(i, c * n) for i, c, n in res] # !!!!生成格式
return ‘/‘.join(sorted(res, key=lambda s: (-len(s), s)))