Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 17, 2012 15:10:48

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

Операция со списком

Есть список

l = [2262, 1750, 1726, 1576]

Нужно на выходе получить измененный таким образом список:

l = [2262-2262, 2262-1750, 1750-1726, 1726-1576]

Т.е. нужно отнять каждый элемент списка от предыдущего (первый отнимается сам от себя). Что-то никак не могу сообразить как перебрать и изменить такой список.

Пробовал range, но видимо что-то не так делаю…
l = [2262, 1750, 1726, 1576]    
for i in range(len(l)):
    print l[i]-l[i+1]

Как здесь отнять от себя первый элемент, видимо условие какое-то нужно добавить…



—————————————————————–
Изучаю и параллельно использую Python 2.7

Офлайн

#2 Сен. 17, 2012 15:17:07

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Операция со списком

>>> mylist = [2262, 1750, 1726, 1576]
>>> [0] + [mylist[idx-1] - mylist[idx] for idx in xrange(1, len(mylist))]
[0, 512, 24, 150]
>>> [0] + map(lambda idx: mylist[idx-1] - mylist[idx], xrange(1, len(mylist)))
[0, 512, 24, 150]

Начинать решение задачи надо с адекватной её формулировки:
нужно отнять каждый элемент списка от предыдущего
Что здесь написано, понять невозможно. Здесь даже не описывается, как должен получиться новый список. Отсюда и начинается путаница.



Отредактировано fata1ex (Сен. 17, 2012 15:25:41)

Офлайн

#3 Сен. 17, 2012 15:22:28

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Операция со списком

l = [0] + map(lambda x: x[0]-x[1], zip(l, l[1:]))



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Сен. 17, 2012 15:26:35)

Офлайн

#4 Сен. 17, 2012 15:27:31

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

Операция со списком

Спасибо! Работает!



—————————————————————–
Изучаю и параллельно использую Python 2.7

Офлайн

#5 Сен. 17, 2012 15:30:38

Seganapa
От: Новороссийск
Зарегистрирован: 2012-07-31
Сообщения: 139
Репутация: +  0  -
Профиль   Отправить e-mail  

Операция со списком

fata1ex
нужно отнять каждый элемент списка от предыдущего
Что здесь написано, понять невозможно. Здесь даже не описывается, как должен получиться новый список. Отсюда и начинается путаница.

Ответы то правильно даны… Я долго пытался сформулировать задачу, но это оказалось не так-то просто!!!))) Все варианты работают…



—————————————————————–
Изучаю и параллельно использую Python 2.7

Офлайн

#6 Сен. 17, 2012 15:51:32

fata1ex
От:
Зарегистрирован: 2009-07-11
Сообщения: 732
Репутация: +  52  -
Профиль   Отправить e-mail  

Операция со списком

Seganapa, ответы даны правильно только из-за примера :) Но если вы не можете описать для себя алгоритм решения задачи на родном языке, вряд ли вас ждет успех в её реализации на языке программирования.



Отредактировано fata1ex (Сен. 17, 2012 15:52:26)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version