Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 3, 2013 20:26:52

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Список

Нужно изменять в цикле список
например

 s=[0,0,0,0,0,0,0]
#в цикле for список должен меняться от нулевого индекса до последнего по очереди на единицу
s=[1,0,0,0,0,0,0]
s=[0,1,0,0,0,0,0]
s=[0,0,1,0,0,0,0]
....
#получается менять по очереди но все на единицу 
s=[1, 1, 1, 1, 1, 1, 1]

Офлайн

#2 Сен. 3, 2013 20:56:07

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Список

нужно обнулять предыдущий элемент, если индекс больше нуля



Офлайн

#3 Сен. 3, 2013 21:22:26

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Список

не понял, после

s=[0,0,0,0,0,0,1]
что должно получиться?

Офлайн

#4 Сен. 3, 2013 22:05:40

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Список

bismigalis
не понял, после
так и должно остаться, список должен меняться до этого значения
так я заменяю список единицами
s=[0,0,0,0,0,0,0]
for i in range(len(s)):
    s[i] += 1
теперь надо идти следом и обнулять , что бы цикл за циклом единица смещалась вправо
что то типа этого
s=[0,0,0,0,0,0,0]
for i in range(len(s)):
    
    s[i] += 1
        
    for i in range(len(s)):
        if s[i]==1:
            s[i] -= 1
        
        print s

Отредактировано sanodin (Сен. 3, 2013 22:34:22)

Офлайн

#5 Сен. 3, 2013 22:48:56

bismigalis
Зарегистрирован: 2010-10-02
Сообщения: 449
Репутация: +  47  -
Профиль   Отправить e-mail  

Список

from collections import deque
d = deque([1, 0, 0, 0, 0, 0, 0])
while not d[-1]:
    d.rotate()
print d

Офлайн

#6 Сен. 3, 2013 23:04:17

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Список

Спасибо…

Офлайн

#7 Сен. 3, 2013 23:04:37

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Список

Это абстрактная задача или реализация какой-то функциональности?



Офлайн

#8 Сен. 3, 2013 23:05:25

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Список

Да, реализация, одна часть общей программы

Офлайн

#9 Сен. 4, 2013 07:00:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Список

>>> def f(lst):
...     lst[0] = 1
...     print(lst)
...     for i in range(1, len(lst)):
...         lst[i - 1], lst[i] = 0, 1
...         print(lst)
... 
>>> f([0] * 7)
[1, 0, 0, 0, 0, 0, 0]
[0, 1, 0, 0, 0, 0, 0]
[0, 0, 1, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0]
[0, 0, 0, 0, 1, 0, 0]
[0, 0, 0, 0, 0, 1, 0]
[0, 0, 0, 0, 0, 0, 1]
>>>



Офлайн

#10 Сен. 4, 2013 10:37:47

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Список

Я даже так вчера делал

cp=[0,0,0,0,0,0,0,0,0,0]
letter=[0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9]
for x in letter:    
    f=x-1
    for i in cp:
        cp[x] = 1
        cp[f]=0
    print cp
ну это с дополнительным куском кода к общей программе
Спасибо py.user.next

Отредактировано sanodin (Сен. 4, 2013 10:38:03)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version