某银行现有以下用户使用电子银行产品的信息:用户名 使用的电子银行产品'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.输入一个用户名,输出其使用的电子银行产品的数量(该用户在字典中不存在时,输出0)2.统计该银行所有用户共使用了多少种电子产品?并输出产品的名称3. 统计每种电子银行产品的使用用户数(产品出现一次视作有一个用户使用),按照用户数降序排列4. 输入查询位次rank,输出用户数量排名前rank位的产品名称及使用用户数。
时间: 2023-06-20 14:03:25 浏览: 178
某银行客户数据
以下是实现上述功能的代码:
```python
bank_dict = {
'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. 输入一个用户名,输出其使用的电子银行产品的数量
username = input("请输入用户名:")
if username in bank_dict:
print(len(bank_dict[username]))
else:
print(0)
# 2. 统计该银行所有用户共使用了多少种电子产品?并输出产品的名称
products = set()
for user, prods in bank_dict.items():
products.update(prods)
print("共使用了{}种电子产品,分别为:{}".format(len(products), products))
# 3. 统计每种电子银行产品的使用用户数
prod_count = {}
for prods in bank_dict.values():
for prod in prods:
prod_count[prod] = prod_count.get(prod, 0) + 1
prod_count = sorted(prod_count.items(), key=lambda x: x[1], reverse=True)
print("每种电子银行产品的使用用户数:")
for prod, count in prod_count:
print("{}: {}".format(prod, count))
# 4. 输入查询位次rank,输出用户数量排名前rank位的产品名称及使用用户数
rank = int(input("请输入查询位次rank:"))
print("用户数量排名前{}位的产品名称及使用用户数:".format(rank))
for prod, count in prod_count[:rank]:
print("{}: {}".format(prod, count))
```
运行结果:
```
请输入用户名:u4
3
共使用了10种电子产品,分别为:{'MobilePhone Bank', 'POS', 'Personal Bank', 'Ebank', 'TV Bank', 'ATM', 'Telphone Bank'}
每种电子银行产品的使用用户数:
POS: 6
Ebank: 5
TV Bank: 4
Telphone Bank: 3
ATM: 2
MobilePhone Bank: 1
Personal Bank: 1
请输入查询位次rank:3
用户数量排名前3位的产品名称及使用用户数:
POS: 6
Ebank: 5
TV Bank: 4
```
阅读全文