Раді Вас бачити! » Увійти » Створити новий профіль
2
17 листопада 2017 11:31:06
насколько все же некомфортно для глаз выглядит код на пайтоне....  фигурные скобки в других языка мне всегда нравились больше

Для будь якої людини, не комфортним буде все, що вона мало або зовсім не розуміє.
Це стосується всього, як мов програмування так і людських мов спілкування, або будь чого іншого.

Рішення тут два. Або вивчити і зрозуміти і побачити ту красу яку інші не бачать, або просто забити і не перейматись.
Саме рішення залежить від того, хто його приймає і від його сталення до світу, що його оточує.

Те ж саме на Java 8 у функціональному стилі:

    public static void main(String[] args) {
       List<Long> longs = LongStream.range(1, 10000000000L).filter(i -> i < 5).mapToObj(i -> (i * i)).collect(Collectors.toList());
       System.out.println(longs);
    }

трошки задовго, але виконується.

А це те ж саме, тільки з фігурними дужками, як ви любите:

    public static void main(String[] args) {
        List<Long> longList = new ArrayList<>();
        for (long i = 1; i < 10000000000L; i++) {
            if (i < 5) {
                longList.add(i * i);
            }
        }
        System.out.println(longList);
    }

Що скажете?
Комфортніше аніж:

[i*i for i in itertools.takewhile(lambda x: x<5, range(10000000000))]

Особисто для мене немає поганих і некомфортних мов і речей.
Всьому своє місце.
І будь яка сутність має право на існування.

Стосовно мов програмування - то просто інструменти.
І їх нема поганих або хороших.
Кожен інструмент створювався зі своєю метою.

Ви ж, наприклад, не будете на роботу їздити, скажімо, на вантажівці, вірно?
Ви виберете легковик.
І це буде вірно.
І цеглу мабуть не додумаєтесь возити легковим авто, вірно?
Але легкове авто не гірше і не ліпше вантажівки.
І вантажівка не ліпше і не гірше.
Вони просто різні і всьому своє призначення.

Так і Python і Java обоє класні і обоє мають свою нішу.
3
17 листопада 2017 09:37:38
Але, якщо ви дійсно (як програміст) знаєте послідовність яку формує генератор, і знаєте, що вона зростаюча, то тоді ще варіант:

>>> import itertools
>>> [i*i for i in itertools.takewhile(lambda x: x<5, range(10000000000))]
[0, 1, 4, 9, 16]

це практично те, що ви хотіли мабуть.
працює швидко, при заданій умові в лямбді звісно. :)
4
16 листопада 2017 22:25:23
>>> def f():
...    for x in range(10000000000): yield x
...
>>> [x*x for x in f() if x < 5]
^CTraceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 1, in <listcomp>
  File "<stdin>", line 2, in f
KeyboardInterrupt
До речі, наступне працює, значить проблема не з yield, a з list comprehension...

>>> for x in f():
...   if x > 5: break
...   else: print(x)

що вам заважає зробити так:

def f():
   for x in range(10000000000):
      print("x=", x)
      yield x

[x*x for x in f() if x < 5]

і самому побачити, що відбувається?

саме так, проблема не в yield і не в if x < 5
проблема в тому, що витягується вся послідовність генератора
і лише потім буде зроблено зріз по if x < 5 перемножені значення і створений список

мабуть ви думаєте, чому list comprehension витягує всі значення з генератора f()?
ну він же не знає, що там буде зростаюча послідовність
та і не має цього знати
от йому і потрібні всі значення генератора і тільки потім він витягне ті значення, що відповідають умові if x < 5
а далі - все просто, тобто те що ви хочете з тим зрізом зробити

тобто пітон тут все робить вірно
не прискіпаєшся
:)
5
16 листопада 2017 13:11:56
import itertools

print([x*x for x in list(itertools.islice(range(10000000000),0,5,1))])

Бажаю удачі.
Та же проблема с памятью.

 Я пробовал такое решение,

print(next(iter(())) if x >= 5 else x*x for x in range(10000000000))

но всё равно, память перегружается созданым списком.

у цьому варіанті

[x*x for x in list(itertools.islice(range(10000000000),0,5,1))]

немає проблеми з пам'яттю
т.я. оце

itertools.islice(range(10000000000),0,5,1))

вам уже легесенько зробить зріз з 5-ти елементів від нуля з кроком один з тих 10-ти мільярдів і не буде генерувати список з усіх елементів.
а потім загорне то в список
list(itertools.islice(range(10000000000),0,5,1))

а далі в квадрати зводити - то дрібниці

елемент списку в пітоні потребує приблизно n * <розмір вказівника> байтів
у вас 10 мільярдів елементів замовляється
10000000000 * 4 = 40000000000 байт - приблизно 39 мегабайт

якщо ви хочете знизити споживання пам'яті то слід дивитись на array, numpy.array
там можна виграти в 4-ри 8-м разів по пам'яті.

Ще раз бажаю удачі.

ЗІ.
І, я не пітонщик.
Пітон в мене то хоббі невеличке. :)
6
16 листопада 2017 12:08:09
import itertools

print([x*x for x in list(itertools.islice(range(10000000000),0,5,1))])

Бажаю удачі.
7
3 грудня 2015 17:49:28
Не знаю чи було вже тут: http://chelyabinsk.ru/text/newsline/106511913439232.html
Але коментарі кацапиків читати страх як приємно.
9
3 листопада 2015 17:44:13
Постав https://www.videolan.org/, безкоштовний.
І не став ніяких кодеків. В ньому все вже є.
10
22 жовтня 2015 23:06:53
Вся современная политикоэкономическ ая система запада построена мелкими лавочниками.
Скільки років на то в них пішло?
11
16 вересня 2015 10:40:28
Це вже не перша компанія, що робить ноги з України.

Читаємо: http://dou.ua/lenta/news/SpeedFlow-to-bulgaria/
Хто вміє болгарською http://technews.bg/article-83927.html#.VfkcfVXtlBe
Болгари задоволені начебто.
Та і компанія займалась не рінгтонами, ось їх сайт http://speedflow.com/

Тенденція з'явилася.
Але в нас зачешуться коли півень в одне місце клюне.
13
1 вересня 2015 15:33:38
А скільки має коштувати поліцейська мигалка?
13500/23=$580

Ви справді вірите в те, що поліцейська мигалка коштує як LCD Smart TV на 42"?
14
19 червня 2015 14:55:04
А чому?
Бо не відбулося зміни влади...
Зміна влади відбулася.
Зміни системи немає.
15
18 червня 2015 17:39:28
Прикол в тому, що лікарі та вчителі у нас не є держслужбовцями.
Хоча по логіці, мали б ними бути, так як отримують зарплату з держбюджету.
Оскільки вони не держслужбовці по закону - то які вони тоді корупціонери?
16
17 червня 2015 16:11:29
Нахуя він ліз в президенти маючи діабет ??!
Це робота з підвищиним рівнем стрессу, при чому перманентного
А в часі війни помножено на порядок.

Нахуя ??
Ви такий цікавий.
А як же питання збільшення своїх статків на декілька порядків?
17
19 травня 2015 11:48:51
а лес-то у вас где.
Интересует, "чё там у хохлов", да?
18
8 травня 2015 23:07:04
Пентковский, Владимир

Але він емігрував до штатів в 1990-му.
Мабудь, тому що розумний.
Так що...
20
23 квітня 2015 09:41:33
Хам став Хамом ще на зоні.
Я чув версію, що це його поганяло там було.
21
22 квітня 2015 10:11:28
И вот что ответил на него Михаил Добкин: «Опыт всех успешных государств показывает, что самый главный экономический успех - а значит, и успех в целом как государства - кроется в экономическом успехе».
"Текст немного по-дебильному написан." (с)
А в данном случае высказан.  :D
22
21 квітня 2015 23:31:53
Бля!  :facepalm:  :lol: С кровати сполз и жену разбудил.
Скажіть дружині, хай вибачить мене.
23
21 квітня 2015 23:18:05
Цікаво, про це тут вже було?
цікаво почути думку автора дописування

з чого він сміється ?


як на мене, то з власної дурості
Так дійсно. В наш час до лікарів звертатися... гибле діло.
Краще так. Перевірений руський спосіб.
Ну і до того ж, такий авторітєтний контінгєнт пацієнтов http://urina-ru.narod.ru/client.htm
Хіба ж тут посперечаєшся.
25
26 лютого 2015 10:19:46
В те що буде Силіконова долина я якраз вірю.
Мікропроцесори на основі силікону...революці я в електроніці
Не зрозумів вашого жарту. Вірніше, здогадався, про що ви збиралися пожартувати, але зробили це невдало. Бо силікон — це кремній, на його основі роблять електроніку і так само кремнієві сполуки є матеріалом для створення штучних цицьок. В обох випадках кажуть "силікон" — але ніхто процесори з цицьками не плутає.

Серёзно?! :umnik2:

Силікони - це сполуки, що містять кремній.
Кремній - а це хімічний елемент в таблиці Мендєлєєва.

Таки різниця наче є.
Інша справа шо англійською - silicon це кремній. А от перекладачі чомусь не перекладають це як кремній, а так і кажуть силікон.
Мабудь є велика тяга до цицьок з силікону. Не скажеш же шо цицьки кремнієві.
27
24 січня 2015 21:40:59
Мабудь хуйло закрив статтю на фінансування луганських комміків.
А ці шльондри за того хто їм платить.
Бабло закінчилось.
Тепер шльондри вийшли на панель і пропонують себе.
28
12 грудня 2014 22:11:26


я долго была за границей. Приехала - работаю на себя, не сталкивалась. Мама и родные нашего полу :) - тоже на себя работают.

Аааа.
Тоді зрозуміло.
Тоді - Welcome home.

стоп...то чисто укрофішка?

Не знаю.
Я за кордоном не працював нажаль.
А про те, що діється тут в Україні в цьому плані - знаю вже років так з п`ять.

Може вам краще знати як там за кордоном.

Я чув, що в сполучених штатах з подібним досить суворо.
Наприклад в резюме про свій вік там ніхто не пише.
І якщо на співбесіді хтось спитає про вік - то йому мало не покажеться від того.

А в нас отак от.
Невже ви не знали теж? Теж за кордоном?
29
12 грудня 2014 22:05:22
До ТС.

Я дуже здивований іншим - що ви про це щойно дізнались.

я долго была за границей. Приехала - работаю на себя, не сталкивалась. Мама и родные нашего полу :) - тоже на себя работают.

Аааа.
Тоді зрозуміло.
Тоді - Welcome home.
30
12 грудня 2014 21:59:40
До ТС.

Я дуже здивований іншим - що ви про це щойно дізнались.
31
7 листопада 2014 21:11:06
Коммунисты - не атеисты. Это просто другая религия. И место поклоноения есть, и идол в этом мавзолее, и его священное для них писание и слепая вера и в это писание и своих пастырей (секретарей разных советов) - все атрибуты культа присутствуют. Даже святая троица наличествует - Маркс-Энгельс-Ленин.  Никакие они не атеисты.

Абсолютно згоден з вами. Мало того, я впевнений в тому, що були непоганими учнями що-до засобів маніпулювання свідомістю людини, які використовують релігійники.

А якщо ТС так переймається вбивствами які робили комуняки, то варто знадати, що релігійні фанатики теж подібним ніколи не брезгували.
Майже будь яка релігія нав`язувалася силою и мала кров людей на своїй совісті. Лише після того як отримувала велике поширення, трохи заспокоювалася з кровожадібністю, але досить добре промивала пастві (баранам) мізки.
33
1 листопада 2014 00:49:44

пецюндра там очень даже причем
[/quote]

Може й ваша правда.
Але цей онищенко давно в Кагарлицький район прикормлює. Я точно знаю.
34
1 листопада 2014 00:45:14
уверен шо он пороху заплатил

Навіщо такі складності?

Ось результати волевиявлення в Кагарлицькому районі

А ось цікава подія, що сталася перед виборами в тому ж Кагарлицькому районі

На кого у вас впаде підозра?

А ось рецепт як вигравати по мажоритарці

Робіть висновки самі, панове.
А то відразу - Пороху заплатив.

Повна версія