Преобразование словаря в список плавающих элементов

#python #list #csv #dictionary

Вопрос:

Я хочу преобразовать этот словарь в список элементов с плавающей точкой.

У меня есть некоторый код, но я не знаю, как этого достичь. .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')
 

Комментарии:

1. Каков пример ввода, который у вас есть, и вывода, который вы хотите?

2. почему бы тебе result[key.lower()] = float(row[3]) этого не сделать ? вам даже не нужен последний диктант

3. @diggusbickus Теперь я вижу, что код, который я написал сначала, был немного неправильным, » результат[ключ] = строка[3]» должен быть результатом[ключ] = строка[3:] (я отредактировал его сейчас), и когда я изменяю это, я получаю «Ошибка типа: аргумент float() должен быть строкой или числом, а не «дикт»». Вы знаете, как это решить»?

Ответ №1:

Вам придется объяснить, как в настоящее время выглядит ваш ввод и как должен выглядеть желаемый вывод.

Если я правильно понял вопрос, вы хотите создать список поплавков из значений в словаре? Если это так, все, что вам нужно сделать, — это простое понимание списка, используя значения словаря.

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

Ответ №2:

Если вы хотите добавить диктант в список с ключом и значением, это вариант.

 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)