Kengyry
Янв. 21, 2007 20:27:15
Люди!
Помогите написать 2 маленькие и простенькие задачки!!!
Циклические сдвиги, когда в первом случае список превращается в , а в другом превращается (как видно, элементы в одной задаче сдвигаются на 1 позицию вправо, в другой - влево)
Важные условия:
НЕ ИСПОЛЬЗОВАТЬ APPEND
НЕ ИСПОЛЬЗОВАТЬ DEL
НЕ ИСПОЛЬЗОВАТЬ FOR
ОБЯЗАТЕЛЬНО НАПИСАТЬ С ПОМОЩЬЮ WHILE
alafin
Янв. 21, 2007 21:09:49
#2
a=
i=0
t=a
while i<len(a)-1:
a=a
i+=1
a=t
Результат:
slivlen
Янв. 21, 2007 21:19:06
А вот альтернативный вариант :)
a =
a = a + [a]
while False:
pass
print a
alafin
Янв. 21, 2007 21:24:02
#1
a=
i=len(a)-1
t=a
while i>0:
a=a
i-=1
a=t
Результат:
P.S. Хочеться увидеть альтернативный вариант и этой задачи ;)
slivlen
Янв. 21, 2007 21:33:40
alafin
P.S. Хочеться увидеть альтернативный вариант и этой задачи wink
Желание администратора - закон :)
a =
a = [a] + a
while False:
pass
print a
alafin
Янв. 21, 2007 21:35:44
Ну вот, теперь думаю, препод должен ставить автоматом за решение задач в двух вариантах :)
slav0nic
Янв. 21, 2007 22:29:27
slivlen while False: pass не осилил)) наверно алафина варианты больше подойдут препаду
slav0nic
Янв. 21, 2007 22:46:47
def left_move(a, n):
“”“
a - список
n - на сколько сдвигать
”“”
while n:
a = a + [a]
n -= 1
return a
def right_move(a, n):
while n:
a = [a] + a
n -= 1
return a
a =
print a
print “<< 2”, left_move(a, 2)
print “>> 2”, right_move(a, 3)
> /usr/bin/python -u “/tmp/1.py”
<< 2
>> 2
имхо так покрасивше В)
сдвигается по 1 элементу за цикл
Kengyry
Янв. 22, 2007 23:01:22
Спасибо! Всем! Не дайте студентке засохнуть!
Как превратить список в ??? Условия те же, что и в первом моем посте.
Striver
Янв. 23, 2007 05:07:07
В Питоне это одним методом .reverse делается:
a=
a.reverse()
print a
Можно, конечно, ещё while False: pass добавить. Но, наверное, твоему преподу что-то поизвращённее надо? Ну, можно извращаться так:
a=
la=len(a)
n=la/2-1
while n>=0:
a,a=a,a
n-=1
print a