利用上一题中的姓氏和名字,随机10000个名字,用列表存储起来,然后从列表中找出并输出次数最多的名字和次数(如果有多个名字次数一样,则输出多个)
时间: 2024-04-14 10:28:13 浏览: 101
请使用以下代码实现您的需求:
```python
import random
familyNames = ['张', '王', '李', '赵', '刘', '陈', '杨', '黄', '吴', '周']
givenNames = ['伟', '芳', '娜', '敏', '静', '强', '磊', '军', '洋', '艳']
names = []
for _ in range(10000):
family_name = random.choice(familyNames)
given_name = random.choice(givenNames)
full_name = family_name + given_name
names.append(full_name)
name_counts = {}
for name in names:
if name in name_counts:
name_counts[name] += 1
else:
name_counts[name] = 1
max_count = max(name_counts.values())
max_names = [name for name, count in name_counts.items() if count == max_count]
print("出现次数最多的名字和次数:")
for name in max_names:
print(name, "出现了", max_count, "次")
```
这段代码中,我们首先定义了姓氏列表`familyNames`和名字列表`givenNames`。然后,我们使用一个循环生成10000个随机的名字,并将它们存储在列表`names`中。
接下来,我们使用一个字典`name_counts`来记录每个名字出现的次数。遍历`names`列表,如果名字在字典中已经存在,则将对应的计数加1;如果名字在字典中不存在,则将其添加到字典,并将计数初始化为1。
然后,我们使用`max`函数找出字典`name_counts`中的最大值,即出现的最多次数。再次遍历字典,将出现次数等于最大次数的名字添加到列表`max_names`中。
最后,我们输出出现次数最多的名字和对应的次数。如果有多个名字出现的次数相同,则都会被输出。
阅读全文