将文本文件中的数值数据转换为Python字典
实现方法
没问题,我来给你拆解一下怎么把这段文本转换成你需要的Python字典,步骤很清晰:
步骤1:准备文本数据
首先把你的文本内容读取为字符串(如果是从文件里读的话,可以用open()函数读取,这里先假设我们已经拿到了文本内容):
# 从文件读取的话可以这样: # with open("your_file.txt", "r") as f: # text = f.read().strip() # 直接使用给定的文本内容 text = "20 23 0 16 1 2 1 6 1 7 1 8 2 11 2 16 2 17 3 14 3 16 3 17 4 7 4 13 4 17"
步骤2:转换为整数列表
把文本按空格分割,再转换成整数类型的列表,这样方便后续处理数字键值:
nums = list(map(int, text.split()))
步骤3:构建目标字典
遍历整数列表,每两个元素为一组(键和对应的值),把相同键的值收集到列表中:
result_dict = {} # 以步长2遍历,每次取一对键值 for i in range(0, len(nums), 2): key = nums[i] value = nums[i+1] # 如果键不在字典里,先初始化一个空列表 if key not in result_dict: result_dict[key] = [] # 将值追加到对应键的列表中 result_dict[key].append(value)
验证结果
运行完上面的代码后,result_dict就是你要的格式:
print(result_dict) # 输出:{20: [23], 0: [16], 1: [2, 6, 7, 8], 2: [11, 16, 17], 3: [14, 16, 17], 4: [7, 13, 17]}
补充说明
- 如果你的文本文件里有多余的换行或空格,
strip()和split()会自动处理,不用担心格式问题。 - 这个方法时间复杂度是O(n),n是文本里的数字个数,效率很高,适合处理较大的文本内容。
内容的提问来源于stack exchange,提问作者Mehdi Selbi
相关产品推荐
相关产品推荐

