Преобразовать определенные c элементы в списке списков из строки в двойную? - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в Python, и я надеюсь, что у этой проблемы есть простое решение, которое я еще не понял. В этой проблеме мне не разрешено использовать numpy или pandas.

Ситуация такова, что я импортировал список списков из csv-файла с кодом ниже:

import csv
my_list=[]
with open("my_file.csv", "r") as file:
    csv_reader = csv.reader(file, delimiter = ";")
    
    for rad in csv_reader:
        my_list.append(rad)

В результате получается список списков, где каждый элемент представляет собой строку. Что я хотел бы сделать, так это преобразовать определенный набор элементов в каждом списке в двойной, чтобы выполнять вычисления. Я предполагаю, что мне нужно l oop по каждому списку и float () каждый отдельный элемент один за другим, поскольку float () не работает со списками. Однако я не могу придумать решение, которое работает.

Я видел решение

[float(i) for i in my_list]

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

Очень благодарен за любую помощь.

1 Ответ

0 голосов
/ 06 августа 2020

Вы можете сделать это с помощью вложенного списка

[[float(i) if i.isnumeric() else i for i in inner_list] for inner_list in my_list]
...