Как сохранить форматирование списка? - PullRequest
0 голосов
/ 13 декабря 2018

Итак, у меня есть несколько списков целых чисел в CSV-файле, например:

["12345","325462"]

["214356","53645"]

...

Я должен вычислить сумму цифр для каждого целого числа из списков.После этого я должен напечатать результаты следующим образом:

"digit_sum1", "digit_sum2"

"digit_sum3", "digit_sum4"

...

Списки находятся в CSV-файле.Как я могу сохранить исходное форматирование из исходного списка?Или как сделать так, чтобы результаты распечатывались?Результаты также должны быть в другом файле .csv.

Это моя настоящая функция:

def convert_raw_data(source, destination):

    with open(source) as fr, open(destination, "x") as fw:
        for line in fr:
            splitted_lines_0 = line.splitlines()
            for elem in splitted_lines_0:
                splitted_lines = elem.split(",")
                for numbers in splitted_lines:
                    sums = calculate_digit_sum(numbers)
                    fr.write(str(sums))

, и вывод «сумм» выглядит следующим образом:

int1

int2

int3

...

И при печати в CSV-файле все это длинная строка.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 13 декабря 2018

Я думаю:

l1 = ["12345","325462"]
[sum([int(xx) for xx in list(x)]) for x in l1 ]

Что возвращает [15, 22]

Применить к каждому списку, например, определить метод, который также преобразует сумму в строку, на всякий случай:

def sum_digits_of_elements_in(lst):
  sums = [ sum([int(xx) for xx in list(x)]) for x in lst ]
  return [ str(x) for x in sums ]
  # return just sums to return integers

Для использования в качестве

l2 = ["214356","53645"]
sum_digits_of_elements_in(l2)
#=> ['21', '23']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...