【问题标题】:Need to copy the contents of a text file to a dictionary需要将文本文件的内容复制到字典中
【发布时间】:2015-12-10 01:59:05
【问题描述】:

我有一个文本文件,每行包含一个单词,后跟一个逗号分隔的单词同义词列表。例如,一行如下所示:

word, synonym1, synonym2, synonym3

所以每行中的第一个单词是键,其余的是它的值

【问题讨论】:

  • 请展示你到目前为止所做的事情。
  • 我只有 f = open("file","r") contents = f.read()

标签: python list file python-3.x dictionary


【解决方案1】:

解决方案

with open('file_name.txt') as fobj:    
    synonyms = {}
    for line in fobj:
        key, *values = [entry.strip() for entry in line.split(',')]
        synonyms[key] = values

产生这个字典synonyms:

{'word1': ['synonym11', 'synonym12', 'synonym13'],
 'word2': ['synonym21', 'synonym22', 'synonym23']}

对于这个文件内容:

word1, synonym11, synonym12, synonym13
word2, synonym21, synonym22, synonym23

说明

  1. 使用with open('file_name.txt') as fobj: 打开文件这将打开文件并承诺在去凹痕后关闭它。

  2. 新建一个空字典:synonyms = {}

  3. 遍历所有行for line in fobj:

  4. 以逗号分隔每一行并从每个单词中删除多余的空格:[entry.strip() for entry in line.split(',')].

  5. 使用新的*-方式在 Python 3 中解压一个可迭代对象以拆分键和值key, *values =

  6. 将值添加到结果synonyms[key] = values

补充:

打印单词和随机同义词:

import random

for word, syns in synonyms.items():
    print(word, random.choice(syns))  

打印:

word1 synonym12
word2 synonym22

【讨论】:

  • 您确定 OP 不想删除这些逗号吗?
  • 刚写解释的时候注意到了。谢谢指点。
  • 嘿,这很好用。唯一的问题是,如果我遍历字典并想要打印给定键的值,它会在列表中打印出来。我试图找出一种方法,我可以随机返回列表中的一个值该给定键的值
  • 所以我有 word = input("Search for a word:") if word in synonyms: print(synonyms[word])
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多