现在有一个txt文件其文件中每一行的特点是:num.txt: st(num是一个有五位的数字,st为0,1或blank。要求用python实现找到num,num不止出现在一行
时间: 2024-02-15 11:03:04 浏览: 96
好的,我们可以通过建立一个字典来存储每个num出现的行号列表,以实现找到所有出现过的num。以下是示例代码:
```python
# 打开文件
with open('filename.txt', 'r') as f:
lines = f.readlines() # 读取所有行
# 建立一个字典,用于存储num和对应的行号列表
num_dict = {}
# 遍历所有行
for i, line in enumerate(lines):
num = line.split(':')[0][-5:] # 获取num
# 如果num已经在字典中出现过,则将该行号添加到num对应的行号列表中
if num in num_dict:
num_dict[num].append(i)
else:
num_dict[num] = [i] # 如果num没有在字典中出现过,则将该num和对应的行号列表添加到字典中
# 遍历字典,打印出所有出现过的num和对应的行号列表
for num, line_nums in num_dict.items():
if len(line_nums) > 1: # 如果该num出现过两次及以上,则打印出num和对应的行号列表
print(num)
print("line_nums:", line_nums)
```
在这个代码中,我们首先打开文件并读取所有行。然后,我们建立一个字典,用于存储num和对应的行号列表。接下来,我们遍历所有行,并从每一行中获取num。如果num已经在字典中出现过,则将该行号添加到num对应的行号列表中。否则,我们将该num和对应的行号列表添加到字典中。最后,我们遍历字典,打印出所有出现过的num和对应的行号列表。
阅读全文