编写程序,假设文本文件in.txt中存放了若干个0-9的数字,每个数字之间用空格分隔,统计出每个数字的出现次数,并输出前5个次数最高的(数字:次数)到out.txt文件中。
时间: 2024-02-03 17:13:42 浏览: 63
以下是Python实现代码:
```python
# 统计数字出现次数
freq = {}
with open('in.txt', 'r') as f:
for line in f:
for num in line.strip().split():
freq[num] = freq.get(num, 0) + 1
# 输出前5个次数最高的数字
top5 = sorted(freq.items(), key=lambda x: -x[1])[:5]
with open('out.txt', 'w') as f:
for num, count in top5:
f.write(f"{num}:{count}\n")
```
解释一下代码:
首先打开输入文件,遍历每一行,再遍历每个数字,使用字典freq统计每个数字出现的次数。
然后使用sorted函数按照出现次数从大到小排序,并取前5个数字,存储在列表top5中。
最后打开输出文件,依次输出top5中的数字和对应的出现次数。
相关问题
编写程序,假设文本文件in.txt中存放了若干个0-9的数字,每个数字之间用空格分隔,统计出每个数字的出现次数
下面是Python的实现代码:
```python
with open('in.txt', 'r') as f:
nums = f.read().split() # 读取文件中的数字并以空格分隔
count = [0] * 10 # 初始化每个数字的出现次数为0
for num in nums:
count[int(num)] += 1 # 统计数字出现次数
with open('out.txt', 'w') as f:
for i in range(10):
f.write(str(i) + ': ' + str(count[i]) + '\n') # 将每个数字的出现次数写入文件
```
代码的逻辑是先读取文件中的数字,然后初始化每个数字的出现次数为0。接着遍历每个数字,统计它们出现的次数。最后将每个数字的出现次数写入文件中。
Python编写程序,假设文本文件in.txt中存放若干个0-9的数字构成的一行文本,每个数字之间用英文空格分隔,统计每个数字出现的次数,并将出现次数最高的写入out.txt中,若同时有多个,则按数字从小到大全部写入out.txt中
好的,这是一个很常见的文件处理任务。以下是Python程序的代码实现:
```python
# 打开文件并读取数据
with open('in.txt', 'r') as f:
data = f.read()
# 将数字字符串转换为数字列表
num_list = list(map(int, data.split()))
# 统计每个数字出现的次数
count_dict = {}
for num in num_list:
if num in count_dict:
count_dict[num] += 1
else:
count_dict[num] = 1
# 找出出现次数最高的数字
max_count = max(count_dict.values())
max_nums = [num for num, count in count_dict.items() if count == max_count]
# 将结果写入out.txt文件
with open('out.txt', 'w') as f:
for num in sorted(max_nums):
f.write(str(num) + '\n')
```
程序的具体实现步骤如下:
1. 打开文件in.txt并读取数据为一个字符串。
2. 将字符串按照空格分隔为数字列表。
3. 遍历数字列表,统计每个数字出现的次数并保存到一个字典中。
4. 找出出现次数最高的数字,保存到一个列表中。
5. 将列表中的数字按照从小到大的顺序排序,并写入out.txt文件中。
希望这个程序能够满足你的需求。
阅读全文