Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 14, 2015 13:06:33

Vasiliy
Зарегистрирован: 2015-02-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

Помогите с вопросом: нужно создать список, состоящий из вложенных списков.Кусок кода такой:

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)

В результате должен получится список list1 состоящий из вложенных списков L1,он и создается, но в L1 каждый раз добавляется новое значение L1 вместе с предыдущим.

Как обнулять список L1 перед каждым новых вызовом цикла, чтобы в него писались только новые значения списка?

Отредактировано Vasiliy (Фев. 14, 2015 13:08:21)

Офлайн

#2 Фев. 14, 2015 14:22:56

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

Vasiliy
тебе сначала надо создать НЕПУСТОЙ список list1

# Список из трёх вложенных списков
list1 = [[], [], []]
# Из одного вложенного.
list1 = [[]]

Последнюю строчку надо так:
list1[0].append(L1)

Иначе ты попросту увеличиваешь, изначальный список, а не вкладываешь в него новый.

Офлайн

#3 Фев. 14, 2015 16:05:28

Vasiliy
Зарегистрирован: 2015-02-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

Так как вы написали, получается совсем неправильно и с ошибкой.
Помимо этого выяснил что в массив list1 заносится все время последнее вычисленное значение массива L1, а не его значение за каждый проход цикла

Офлайн

#4 Фев. 14, 2015 16:05:54

Vasiliy
Зарегистрирован: 2015-02-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

в чем косяк?

Офлайн

#5 Фев. 14, 2015 16:06:57

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

Покажи пример того, что должно в итоге получиться.

Офлайн

#6 Фев. 14, 2015 16:31:46

Vasiliy
Зарегистрирован: 2015-02-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

Выхлоп такой:

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]]

как видно в список list1 заносится последний вычисленный список L1, а должен заносится каждый раз при новом заполнении списка L1.

Отредактировано Vasiliy (Фев. 14, 2015 16:36:35)

Офлайн

#7 Фев. 14, 2015 16:37:54

Vasiliy
Зарегистрирован: 2015-02-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

а сам код такой:

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)

Офлайн

#8 Фев. 14, 2015 18:24:15

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

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)

Офлайн

#9 Фев. 14, 2015 19:09:21

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

Vasiliy

как видно в список list1 заносится последний вычисленный список L1, а должен заносится каждый раз при новом заполнении списка L1.

Потому что метод append, добавляет в конец списка. Если тебе надо, что бы старый заменялся новым, просто присваивай.

Офлайн

#10 Фев. 14, 2015 19:50:33

MiK
Зарегистрирован: 2014-10-30
Сообщения: 191
Репутация: +  -1  -
Профиль   Отправить e-mail  

как создать вложенный список через цикл for

Я кажется понял - ты не можешь присвоить. Если нужно сделать копию списка, тогда так:

list1 = L1[:]

Угадал?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version