Преобразование списка в кортеж списков - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть nundy ndarray, который должен быть преобразован в набор списков для мультипроцессора. Пул для работы с ними.Я преобразовал этот ndarray в список, показанный здесь:

file_list = ['File_01', 'File_02', 'File_03']

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

tuple_of_file_names = (['File_01'], ['File_02'], ['File_03'])

Меня интересует, как преобразовать этот список имен файлов в кортеж из списков имен файлов.

Ответы [ 4 ]

0 голосов
/ 11 февраля 2019

Вы можете использовать map вместе с zip и tuple, чтобы получить свой результат:

file_list = ['File_01', 'File_02', 'File_03']
file_list = tuple(map(list,zip(file_list)))
print(file_list)

Вывод:

(['File_01'], ['File_02'], ['File_03'])
0 голосов
/ 11 февраля 2019

Используйте map + lambda и tuple() для преобразования в кортеж:

file_list = ['File_01', 'File_02', 'File_03']

tuple_of_file_names = tuple(map(lambda x: [x], file_list))
# (['File_01'], ['File_02'], ['File_03'])
0 голосов
/ 11 февраля 2019

Ну, если у вас изначально было ndarray, самое простое, что вы можете сделать, это добавить к нему другую ось, используя np.newaxis / None, а затем получить вложенный список, используя tolist().

Вот пример:

x = np.array([1,2,3])

x[:, np.newaxis].tolist()
# [[1], [2], [3]]

Примечание. Если вы хотите, чтобы результирующий список был кортежем, просто вызовите конструктор tuple, например tuple(nested_list)

0 голосов
/ 11 февраля 2019

Простое понимание сделает работу:

tuple_of_file_names = tuple([name] for name in file_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...