Как соединить 2 списка в 1 список - PullRequest
0 голосов
/ 15 мая 2018

У меня есть такой код:

def datauji(self):
    uji = []
    for x in self.fiturs:
        a = [x[0],x[-5:]] #I think the problem in this line
        uji.append(a)
    return uji

with open('DataUjiBaru.csv','wb') as dub:
        testing = csv.writer(dub)
        datatest = d.datauji()
        datatest.pop(0)
        for x in datatest:
            testing.writerow(x)

Я хочу связать значение в self.fiturs, В self.fiturs:

F37,0,1,0,1,1,1,0,1,0,2,1,0,0,0,1
F10,8,4,3,3,3,6,8,5,8,4,8,4,5,6,4
F8,1,0,2,0,0,0,2,0,0,0,0,0,2,0,0

Так что я хочу, чтобы индекс пары[0] и индекс [-5:] и запишите его в CSV, и вывод на CSV, как это:

F37,"['1', '0', '0', '0', '1']"
F10,"['8', '4', '5', '6', '4']"
F8,"['0', '0', '2', '0', '0']"

Мои ожидания в этом CSV выглядит так:

F37,1,0,0,0,1
F10,8,4,5,6,4
F8,0,0,2,0,0

Как я могу это исправить?

1 Ответ

0 голосов
/ 15 мая 2018

Вы были правы относительно проблемы с вашим кодом, он находится в строке:

a = [x[0],x[-5:]]

Это создает вложенные элементы, которые выглядят так:

['F37', ['1', '0', '0', '0', '1']]

Вот два способа исправить это:

Опция 1 - Используйте оператор splat*:

a = [x[0],*x[-5:]]

Вариант 2 - объединить два фрагмента вашего списка:

a = x[:1] + x[-5:]

Оба из них уберут вложенность ваших списков и вместо этого дадут вам строки, похожие на:

['F37', '1', '0', '0', '0', '1']

Который вы затем можете записать в выходной файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...