随机密码生成。编写程序,在26个字母的大小写和9个数字组成的列表中随机生成10个8位的密码。并统计每个密码中字母出 现的次数,最终生成一个密码为键,字母出现的次数为值的字典,将该字典按照值从低到高排序后输出该字典.
时间: 2024-03-27 20:37:57 浏览: 32
好的,我可以帮您解决这个问题。以下是 Python 代码:
```python
import random
letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
passwords = []
for i in range(10):
password = ''.join(random.choices(letters, k=8))
passwords.append(password)
password_dict = {}
for password in passwords:
count_dict = {}
for char in password:
if char in count_dict:
count_dict[char] += 1
else:
count_dict[char] = 1
password_dict[password] = count_dict
sorted_dict = dict(sorted(password_dict.items(), key=lambda item: sum(item[1].values())))
print(sorted_dict)
```
代码解释:
- 首先定义了一个包含所有可能字符的字符串 letters。
- 然后使用循环生成 10 个随机密码,每个密码包含 8 个字符。
- 接着定义了一个空字典 password_dict,用于存储密码和每个字符出现次数的字典。
- 对于每个密码,使用一个嵌套的循环创建一个新的字典 count_dict,用于统计每个字符出现的次数。然后将该字典添加到 password_dict 中。
- 最后使用 Python 的内置函数 sorted 对 password_dict 进行排序,排序的关键是每个密码中字符出现次数的总和。排序后得到的结果存储在 sorted_dict 中,并打印输出。
希望能够解决您的问题!
阅读全文