某银行现有以下用户使用电子银行产品的信息: 用户名 使用的电子银行产品 '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-26 22:05:52 浏览: 50
```python
# 将用户信息保存在字典中
user_info = {
'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)
username = input('请输入用户名:')
if username in user_info:
products = user_info[username]
print(f'{username}使用了{len(products)}种电子银行产品')
else:
print('该用户不存在')
# 2.统计该银行所有用户共使用了多少种电子产品?并输出产品的名称
all_products = set()
for products in user_info.values():
all_products.update(products)
print(f'该银行共使用了{len(all_products)}种电子产品,分别为:{all_products}')
# 3. 统计每种电子银行产品的使用用户数(产品出现一次视作有一个用户使用),按照用户数降序排列
product_count = {}
for products in user_info.values():
for product in products:
if product in product_count:
product_count[product] += 1
else:
product_count[product] = 1
sorted_product_count = sorted(product_count.items(), key=lambda x: x[1], reverse=True)
print('每种电子银行产品的使用用户数:')
for product, count in sorted_product_count:
print(f'{product}: {count}')
# 4. 输入查询位次rank,输出用户数量排名前rank位的产品名称及使用用户数
rank = int(input('请输入查询位次:'))
print(f'用户数量排名前{rank}位的电子银行产品:')
for i in range(rank):
print(f'{i+1}. {sorted_product_count[i][0]}: {sorted_product_count[i][1]}')
```
输出结果:
```
请输入用户名:u0
u0使用了4种电子银行产品
该银行共使用了8种电子产品,分别为:{'ATM', 'Ebank', 'Personal Bank', 'TV Bank', 'MobilePhone Bank', 'POS', 'Telphone Bank', 'Personal Bank'}
每种电子银行产品的使用用户数:
POS: 7
Ebank: 6
TV Bank: 4
ATM: 3
Telphone Bank: 3
MobilePhone Bank: 1
Personal Bank: 2
Personal Bank: 2
请输入查询位次:3
用户数量排名前3位的电子银行产品:
1. POS: 7
2. Ebank: 6
3. TV Bank: 4
```