2016-11-03 2 views
0

Основной вопрос, но я не мог найти правильный способ сделать это.Объединение небольших списков в большой список в python

сгенерировать 4 маленький список в цикле

emptylist=[] 
for #some condition 
    a=[1,2] 
    b=[3,4] 
    c=[7,8] 
    d=[31,1] 


    y=np.stack(a,b,c,d) 
    emptylist.extend(y) 

Затем я генерировать следующий 4 небольшой список, который я хочу, чтобы добавить к х последовательно

Хочу единый список, как

emptylist=[(1,2),(3,4),(7,8),(31,1),......] 

Я хочу расширить список 'emptylist', добавив более мелкие списки таким образом

I не получить список, как указано выше, но список как

emptylist=[array([1,2]),array([3,4])....]

Любое предложение о том, где я не прав и как подойти к этому

+1

Удалите 'np.stack' и просто выполните' y = [a, b, c, d] '. – DavidG

+2

Если вам нужны кортежи, вы можете сопоставить его: 'map (tuple, [a, b, c, d])' –

+0

Спасибо, я передумал проблему, –

ответ

1

Для того, чтобы получить список списков, просто добавить элемент в списке как:

>>> a=[1,2] 
>>> b=[3,4] 
>>> c=[7,8] 
>>> [a, b, c] # adding list a, b, c within list 
[[1, 2], [3, 4], [7, 8]] 

в случае, если конкретный сделать вложенную структуру, tuple вместо list, вы можете использовать map() для того, чтобы явно тип отливка его кортеж, как:

>>> list(map(tuple, [a, b, c])) 
[(1, 2), (3, 4), (7, 8)] 
0

Вы также можете использовать my_new_list = list((a,b,c,d)). Это полезно для быстрого понимания и нахождения в огромном коде. Противоположно [a,b,c], которые могут быть считаны как (a,b,c).

0

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

l = [2,3,4,5] 

tuple(l)  /* The required statement*/

Выход будет: (2,3,4,5)

С помощью этого вы можете легко решить вашу проблему путем преобразования каждого внутреннего списков в кортежах.

Смежные вопросы