#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)