如何从文本文件自动生成字典并通过输入键获取对应值?
解决方案
你之前的问题核心是直接覆盖字典值,而非将新值追加到集合/列表中。要实现一个键对应多个关联值,字典的值需用列表(或集合)存储,以此保留多个关联项。
代码实现
# 初始化空字典,值为列表类型 graph = {} # 读取目标文本文件 with open("your_file.txt", "r") as f: for line in f: # 去除换行符并分割成两个关联节点 node1, node2 = line.strip().split() # 处理第一个节点:键不存在则创建空列表,再追加关联节点 if node1 not in graph: graph[node1] = [] graph[node1].append(node2) # 处理第二个节点:双向关联需同步添加(比如0和1互相关联) if node2 not in graph: graph[node2] = [] graph[node2].append(node1) # 可选:转换成你示例中的字符串格式 formatted_dict = "a={\n" for key, values in graph.items(): formatted_dict += f'"{key}": "{",".join(values)}"\n' formatted_dict += "}" print(formatted_dict) # 直接查询键的关联值 print(graph["0"]) # 输出: ['1', '3']
关键说明
- 用列表存储每个键的关联值,每次读取行时追加而非覆盖,确保多个值被保留。
- 示例中关联是双向的(如
0 1对应0的关联值含1,1的关联值含0),因此需同时处理两个节点;若只需单向关联,删除处理node2的代码块即可。
内容的提问来源于stack exchange,提问作者Hasan Ahmati
相关产品推荐
相关产品推荐

