Как получить список из двух списков - PullRequest
0 голосов
/ 26 мая 2020

У меня есть два списка (оба уже правильно упорядочены и содержат по 180 000 пунктов). Первый содержит имена файлов.

filenames[0]
s01_l01/1000_1.png

Второй список содержит метки файлов.

labels[0]
'1BK 7475'

Как мне теперь получить список, который выглядит следующим образом: [[ filename_1, label_1], [filename_2, label_2], ..., [filename_n, label_n]]?

list_of_filenames_labels[0]
[s01_l01/1000_1.png, '1BK 7475']

Большое спасибо!

Ответы [ 4 ]

1 голос
/ 26 мая 2020

Вы можете сделать это с помощью простой карты с лямбда-функцией

a = ['1','2','3']
b = ['a','b','c']
c = list(map(lambda x, y: [x,y], a, b))

Результат для c будет

c = [['1', 'a'], ['2', 'b'], ['3', 'c']]
0 голосов
/ 26 мая 2020

если оба списка имеют одинаковую длину, вы можете использовать enumerate функцию

list_of_filenames_labels = [[filename, labels[i]] for i, filename in enumerate(filenames)]

0 голосов
/ 26 мая 2020

Здесь:

list_of_filenames_labels = [[filename,label] for filename,label in zip(filenames,labels)]
0 голосов
/ 26 мая 2020

Указанный вами вывод аналогичен выводу zip, за исключением того, что это список списков, а не список кортежей. Это преобразует их в списки:

[list(t) for t in zip(filenames, labels)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...