Напишите функцию с именем "csv_to_kvs", которая берет строку как параметр, представляющий имя CSV файла с 4 столбцами в формате "строка, float, float, float" и возвращает новые строки привязки хранилища ключей к номерам с плавающей запятой, Возвращенное хранилище ключей будет иметь одну пару для каждой строки в файле с ключами из первого столбца файла CSV и значения из третьего столбца. (Мой код ниже)
import csv
def csv_to_kvs(string):
with open(string) as f:
my_file = csv.reader(f)
my_dict = {}
for row in my_file:
my_dict[row[0]] = row[2]
return my_dict
Как преобразовать значения в словарь в поплавки?
Используйте литье.
Могут быть моменты, когда вы хотите указать тип для переменной. Это можно сделать с помощью литья. Python - ориентированный на объект язык, и поэтому он использует классы для определения типов данных, включая его примитивные типы.
Таким образом, кастинг в python выполняется с использованием функций-конструкторов:
int() - строит целое число из целочисленного литерала, литерал с плавающей точкой (округляя до предыдущего целого числа) или строковый литерал (при условии, что строка представляет целое число)
float() - создает число с плавающей точкой из целочисленного литерала, литерал с плавающей точкой или строковый литерал (при условии, что строка представляет собой float или целое число)
str() - строит строку из самых разных типов данных, включая строки, целые литералы и литералы с плавающей запятой
Ссылка: https://www.w3schools.com/python/python_casting.asp
Как выглядит ваш код:
import csv
def csv_to_kvs(string):
with open(string) as f:
my_file = csv.reader(f)
my_dict = {}
for row in my_file:
my_dict[row[0]] = float(row[2])
return my_dict
return {row[0]: float(row[2]) for row in csv.reader(f)}
float(row[2])
?a,1,2.0,3
, и он работал отлично. Если он не работает с вашим файлом, укажите его содержимое.