【问题标题】:List input into dictionary将输入列出到字典中
【发布时间】:2014-09-23 18:40:02
【问题描述】:

所以我为类设置了一个问题,我得到了一个包含单词文本缩写的 csv 文件,并且我被要求提示用户输入多个缩写,如果找到缩写,它应该返回全文,如果否则它将返回原始缩写。

我目前正坚持将用户输入列表正确地放入字典中。

import csv

def CreateDictionary(i):            
    abbrv = i.lower()
    abbrv = i.split(' ')

    dictionary = {}
    fo = open('filename.csv')
    data = csv.reader(fo)
    for row in data:
        dictionary[row[0]] = row[1]
    fo.close()

def main():
    user = input("abbreviations")       
    print(CreateDictionary(user))

main()

【问题讨论】:

  • 您的print(CreateDictionary(user)) 行不会打印任何内容,因为CreateDictionary 不会返回任何内容。

标签: python python-3.x dictionary


【解决方案1】:
import csv

def CreateDictionary(i):            
    abbrv = i.lower()
    abbrv = i.split(' ')

    dictionary = {}
    fo = open('filename.csv')
    data = csv.reader(fo)
    for row in data:
        if row[0] in abbrv: 
            yield (row[0],row[1])
    fo.close()

user = input("abbreviations")       
print(list(CreateDictionary(user)))

可能会做你要求的事情

【讨论】:

    【解决方案2】:

    csv 库有一个 DictReader 对象,您可以使用它来自动执行该过程。

    https://docs.python.org/3/library/csv.html#csv.DictReader

    【讨论】:

      【解决方案3】:

      尝试将字典中键的值添加到列表中(如果存在)

      import csv
      
      def CreateDictionary(i):            
          abbrv = i.lower()
          abbrv = i.split(' ')
      
          dictionary = {}
          fo = open('filename.csv')
          data = csv.reader(fo)
          for row in data:
              dictionary[row[0]] = row[1]
          fo.close()
          ret = []
          for i in abbrv:
              try:
                  ret.append(dictionary[i])
              except KeyError:
                  ret.append(i)
          return ret
      def main():
          user = input("abbreviations")       
          print(CreateDictionary(user))
      
      main()
      

      【讨论】:

        猜你喜欢
        • 2014-03-13
        • 1970-01-01
        • 2023-03-04
        • 2019-12-11
        • 2020-05-31
        • 2022-01-03
        • 2022-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多