Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Python
Перезагрузить страницу Фишки как реализовать программу
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию Фишки как реализовать программу - 20.06.2007, 16:30

lst[-1::-1] - переворачивает список. Об этом давно писал в теме про "крутой язык" Громозека.

zip(*c) - заменитель (отсутствующей?) функции unzip (где c - зипнутый список). Нашёл тут.
Ответить с цитированием
  (#2 (permalink)) Старый
xonix xonix вне форума
Member
 
Сообщений: 429
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.03.2007
По умолчанию 28.06.2007, 20:54

Цитата:
lst[-1::-1] - переворачивает список. Об этом давно писал в теме про "крутой язык" Громозека.
Лучше использовать arr.reverse() (перевернуть на месте) или reversed(arr) (с 2.5 - возвратитить перевернутый иттератор)
Ответить с цитированием
  (#3 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 06.07.2007, 06:46

ООП шиворот-навыворот:

Код:
def deco(f):
    f.x = 1
    f.y = 2
    return f

@deco
def function1(arg1, arg2, arg3):
    function1.x += 1
    function1.y += 2
    #--- blah-blah-blah....
Ответить с цитированием
  (#4 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 17.07.2007, 12:00

Может ли зачем-нибудь быть нужен генератор, возвращающий время? Например:

Код:
def time_line():
    for i in xrange(0, 10):
        yield time.time()
        time.sleep(1)
Ответить с цитированием
  (#5 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 20.07.2007, 12:34

не понятно, зачем слип, и не понятно, чем он от функции отличается-то? Ограниченным кол-вом вызовов?


импортирован с progz.ru
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 20.07.2007, 13:06

Можно убрать слип и сделать неограниченное число вызовов. Я ж и спрашиваю: может ли такое быть зачем-нибудь нужно? Для написания операционной системы для электронных часов?
Ответить с цитированием
  (#7 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 20.07.2007, 21:26

ну поскольку этот генератор ничем не отличается от обычного вызова функции, то и нужен он быть не может (разве что для какого-нибудь хака).
С таким же успехом можно написать что-нибудь вроде
Код:
def a(x):
    return b(x)
всё выше написанное справедливо при условии, что я не упустил какой-нибудь важной особенности генераторов.


импортирован с progz.ru
Ответить с цитированием
  (#8 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 09.08.2007, 09:52

Код:
>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]
Всё понятно почему, но можно и прохлопать этот момент...


импортирован с progz.ru
Ответить с цитированием
  (#9 (permalink)) Старый
imported_frfr imported_frfr вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.06.2007
По умолчанию 17.08.2007, 11:53

Генератор возвращающий время вряд ли полезен, а вот декоратор вызывающий обернутую функцию в отдельном потоке с заданной временной задержкой вполне.
Ответить с цитированием
  (#10 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
Question 12.11.2007, 23:29

Код:
>>>complex("3+6j")
(3+6j)
Gooood
Код:
>>>complex("4v+7j")

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    complex("4v+7j")
ValueError: complex() arg is a malformed string
Gooood
Код:
>>>complex("5d+5j")
500000j
WTF?
Баг или фича?


импортирован с progz.ru
Ответить с цитированием
  (#11 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,274
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 13.11.2007, 00:22

Цитата:
<div class='codetop'>Код Python
<div class='codemain'>>>>complex("5d+5j")
500000j[/code]
WTF?
Баг или фича? [/quote]
Очевидно, 5d+5 воспринято как 5*(10 в степени 5)
Ответить с цитированием
  (#12 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 14.11.2007, 20:54

ну это я и сам понял. Дальнейшие эксперименты это подтверждают.


импортирован с progz.ru
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 16.11.2007, 12:50

Код:
def f(a):
    for i in xrange(5):
        c=time.clock()
        for u in xrange(10):
            a.insert(0,10)
            a.pop(0)
        print time.clock()-c

def v(a):
    for i in xrange(5):
        c=time.clock()
        for u in xrange(10000):
            a.append(10)
            a.pop()
        print time.clock()-c

a=range(10000000)

print "fast"
v(a)
print "slow"
f(a)
Код:
fast
0.136924944371
0.0106175505546
0.010538210862
0.0105982743617
0.0104552394229
slow
2.17166986307
2.16802526578
2.16727349426
2.17212243456
2.17068091056
Вставка элемента в начало списка (функция f(a) ) в 20000 раз медленнее, чем в конец ( v(a) )
К тому же первый прогон всегда в 10 раз медленнее последующих.


импортирован с progz.ru
Ответить с цитированием
  (#14 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 16.11.2007, 17:05

Про прогон не понял, а про вставку - имхо, ничего удивительного.
Ответить с цитированием
  (#15 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 16.11.2007, 17:11

я думал что наоборот буде быстрей... Где у списка "хвост"?

Про прогон - посмотри первое время и сравни с остальными.


импортирован с progz.ru
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно реализовать программу в паскале абс Bart2000 Pascal 0 03.04.2012 01:01
реализовать программу leshan Вопросы начинающих программистов 0 16.01.2012 23:21
Как реализовать идею в программу? =) Ильяя С/С++ 1 30.11.2011 11:51
Фишки связанные с видео Мборзик Видеокарты 4 05.09.2011 22:42
Требуется реализовать программу elena.serebr Delphi 1 17.05.2011 02:35
Реализовать программу – сниффер на С++ Валькирия Вопросы начинающих программистов 9 09.10.2008 05:36
Сумма ряда как реализовать программу hitter Assembler 1 20.03.2008 15:13
Примочки и фишки при работе с ПК. Max Общетематический 0 26.02.2008 13:32
Как написать программу и реализовать ее EcZe C++ Builder 5 07.01.2007 14:41
фишки Sith Офтопик 11 27.12.2006 19:54
3d в Pascal как реализовать программу fazzz Pascal 2 11.06.2005 19:46
Как реализовать программу управления многопроцессоным комплексом gryzli Вопросы начинающих программистов 0 06.01.2005 02:59



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов