【问题标题】:Convert dictionary to list of float-element将字典转换为浮点元素列表
【发布时间】:2021-11-25 16:37:10
【问题描述】:

我想将此字典转换为浮点元素列表。

我有一些代码,但我不知道如何实现。我拥有的.csv 文件由数字和单词组成。创建的新字典仅包含 .csv 文件中的 一些 元素。

import csv
def load_csv(filename):
    with open (filename, 'r') as file:
        reader = csv.reader(file)
        result = {}
        for row in reader:
            key = row[1]
            if key in result:
                pass
            result[key] = row[3:]
        lowercase = {k.lower(): v for k, v in result.items()}


    # This last part is just to check which type the elements are
    s = lowercase.values()
    print(type(s))
    for i in lowercase.values():
        print (type(i))
    print(lowercase)

load_csv('CO2Emissions_filtered.csv')

【问题讨论】:

  • 您拥有的输入和想要的输出的示例是什么?
  • 你为什么不result[key.lower()] = float(row[3])?你甚至不需要最后一个字典
  • @diggusbickus 我现在看到我一开始写的代码有点错误,“result[key] = row[3]”应该是 result[key] = row[3:] (我现在已经编辑了它)当我改变它时,我得到“TypeError:float()参数必须是字符串或数字,而不是'dict'”。你知道怎么解决吗?

标签: python list csv dictionary


【解决方案1】:

您将不得不解释您的输入当前是什么样的以及您想要的输出应该是什么样的。

如果我理解了这个问题,您想根据字典中的值创建一个浮点数列表吗? 如果是这样,您需要做的就是使用字典的值进行简单的列表推导。

float_elements = [float(val) for val in dict.values()]

【讨论】:

    【解决方案2】:

    如果您希望将 dict 放入包含键和值的列表中,这是一个选项。

    import csv
    def load_csv (filename):
      with open (filename, 'r')as f:
      reader = f.readlines()
      result = []
      for row in enumerate(reader):
          result.append(row)
          print(result)
    

    【讨论】:

      猜你喜欢
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-30
      • 2013-04-01
      • 1970-01-01
      • 2010-09-20
      相关资源
      最近更新 更多