Форум сайта python.su
0
Помогите с вопросом: нужно создать список, состоящий из вложенных списков.Кусок кода такой:
list1=
L1=
#print('словарь 1')
for x in range (0,10):
L1.append(ds)
L1.append(quants)
L1.append(d.rate)
L1.append(d.trans)
L1.append(d.bonus)
L1.append(b)
list1.append(L1)
Отредактировано Vasiliy (Фев. 14, 2015 13:08:21)
Офлайн
-1
Vasiliy
тебе сначала надо создать НЕПУСТОЙ список list1
# Список из трёх вложенных списков list1 = [[], [], []] # Из одного вложенного. list1 = [[]]
list1[0].append(L1)
Офлайн
0
Так как вы написали, получается совсем неправильно и с ошибкой.
Помимо этого выяснил что в массив list1 заносится все время последнее вычисленное значение массива L1, а не его значение за каждый проход цикла
Офлайн
0
в чем косяк?
Офлайн
14
Покажи пример того, что должно в итоге получиться.
Офлайн
0
Выхлоп такой:
L1 [5, 8, 16.0, 0, 0, 107.52] >>> list1 [[5, 8, 16.0, 0, 0, 107.52], [5, 8, 16.0, 0, 0, 107.52], [5, 8, 16.0, 0, 0, 107.52]]
Отредактировано Vasiliy (Фев. 14, 2015 16:36:35)
Офлайн
0
а сам код такой:
list1=[] L1=[0,0,0,0,0,0] print('словарь 1') for x in range (0,3): L1[0]=ds[x] L1[1]=quants[x] L1[2]=d.rate L1[3]=d.trans L1[4]=d.bonus L1[5]=b[x] list1.append(L1)
Офлайн
14
Vasiliy
import copy data = [5, 8, 16.0, 0, 0, 107.52] result = [] for i in range(3): result.append(copy.deepcopy(data)) print(result)
Офлайн
-1
Vasiliy
как видно в список list1 заносится последний вычисленный список L1, а должен заносится каждый раз при новом заполнении списка L1.
Офлайн
-1
Я кажется понял - ты не можешь присвоить. Если нужно сделать копию списка, тогда так:
list1 = L1[:]
Офлайн