d = {}
d['u0'] = ('a3', 'b', 'c')
d['u1'] = ('a1', 'a2', 'a3', 'c')
d['u2'] = ('a', 'a3')
n = input('输入用户名:')
print('该用户产品数量:', len(d.get(n, '')))
r = []
for i in d.values():
r += list(i)
rr = {}
for i in set(r):
rr[i] = r.count(i)
rank = sorted(rr.items(), key=lambda x: x[1], reverse=True)
print('产品排行榜:', rank)
m = int(input('输入第几名的产品:'))
for i, k in enumerate(rank):
if i <= m-1:
print(f'第{i+1}名产品名称:{k[0]},用户数:{k[1]}')
只要更换代码的字典就行了,换成你题目的数据
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
a = {'u0':('TV Bank', 'ATM', 'Telphone Bank', 'POS'), 'u1':('Ebank', 'Telphone Bank'), \
'u2':('TV Bank', 'POS'), 'u3':('POS', 'Ebank'), 'u4':('POS', 'Ebank', 'ATM'),\
'u5':('TV Bank', 'Ebank', 'ATM'), 'u6':('POS', 'Ebank', 'TV Bank'),\
'u7':('TV Bank', 'Telphone Bank', 'POS'), 'u8':('MobilePhone Bank', 'Ebank'),\
'u9':('Personal Bank', 'Telphone Bank'), 'u10':('Ebank', 'Personal Bank')}
# 1
name = input()
print(len(a[name]))
# 2
lst = []
for i in a:
for j in a[i]:
lst.append(j)
for i in set(lst):
print(i, lst.count(i)) # 每种电子产品用户数
sort_a = sorted(set(lst), key = lambda x:lst.count(x), reverse=True)
print(sort_a)
# 3
rank = int(input())
for i in range(rank):
print(sort_a[i], lst.count(sort_a[i]))
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632