Разделение списка на отдельные суммы списка

#python #python-3.x

#python #python-3.x

Вопрос:

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

На данный момент у меня есть код, который создает идентификаторы, но мне нужны эти идентификаторы отдельно

['325', '323', '324', '322']

Я хочу разделить их, чтобы они вошли в

 ['323']
['324']
['322']
 

Каков наилучший способ сделать это?

Список имеет разные суммы, и некоторые из них имеют только один идентификатор

Комментарии:

1. Что вы уже пробовали?

2. Я в основном смотрел на str.split , но, похоже, это просто группирует его в другой [‘ ‘] , я также рассмотрел его разделение после запятой, но опять же он просто сохраняет его в том же списке

3. [[i] for i in list_]

4. Вы уверены, что это то, что вы хотите? Кажется маловероятным, что вам понадобится список списков с одним элементом в каждом.

5. @sahasrara62 Пожалуйста, напишите это как ответ.

Ответ №1:

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

  main_list = ['325', '323', '324', '322']
 final_solution = []
 for element in main_list:
       tmp = [element]
       final_solution.append(tmp)
 print(final_solution)

 # output -> [['325'], ['323'], ['324'], ['322']]`
 

или, используя list comprehension

 final_solution = [[element] for element in main_list]
print(final_solution)

# output -> [['325'], ['323'], ['324'], ['322']]`
 

Ответ №2:

Вот простая однострочная строка, которая превращает каждый элемент в списке в массив, содержащий элемент:

 list(map(lambda x : [x], arr))
 

так что, если у вас есть arr = [1,2,3] :

 >>> a = list(map(lambda x : [x], arr))
>>> print(a)
[[1], [2], [3]]
 

Ответ №3:

 my_list = ['325', '323', ['324', '327'], '345', '322']
new_list = []
for i in my_list:
     if type(i) == str:
         new_list.append([i])
     else:
          for j in i:
              new_list.append([j])
 

new_list = [['325'], ['323'], ['324'], ['327'], ['345'], ['322']] .