Два глупави въпроса: присвояване и списък :)

  1. Здравейте,

    В процеса на правене на мъничко инструментче, с което да scrape-вам HTML-а на форума, за да мога да се известявам сам кога има нещо ново ;) се сблъсках с две неясноти:

    1. Има ли начин в Python да направя присвояване и на същия ред да използвам стойността му? Искам да направя m = someregexp.match(string) и да използвам това в if или while; засега виждам само начин да го направя на два реда. Пропускам ли нещо?

    2. Как, в името на Ерис, мога да взема един списък и да го разбия на 2-tuples, така че от него да мога да направя речник?! :) Имам списъка lst = ['a', 1, 'b', 2, 'c', 3] и нито dict(lst), нито dict(*lst), нито нещо такова върши работа - защото lst е прост списък, а не списък от tuples. Е, как да го направя на списък от 2-tuples с последователните му елементи? :)

    Както си пише и в заглавието, въпросите са малко глупави :)

    А ако някой е любопитен, тъпичката версия на fpyscrape.py, която съм направил досега, може да бъде видяна в хранилището на https://github.com/ppentchev/python-homework в клон roam-tools и директория roam-tools/fpyscrape/. За момента е глупавичка и от гледна точка на функционалност (не си презаписва файла in-place, нито пък прави каквито и да е опити да си играе с бази данни), и от гледна точка на код (да, знам, че има няколко места, където може да бъде направено доста по-добре; с времето и това ще стане, донякъде и като науча малко по-добре Python :) Ако някой иска да я тества, създава празен начален fpyscrape.txt и я пуска - тя ще създаде fpyscrape-new.txt, в който ще има някаква информация. Местите го обратно върху fpyscrape.txt и след това пускате fpyscrape, докато то каже, че има нова тема или нови мнения.

    Публикувано преди
  2. По втория въпрос: zip(lst[::2], lst[1::2]) ?

    Съответно: dict(zip(lst[::2], lst[1::2]))

    Публикувано преди
  3. Благодаря! Това работи идеално :)

    Публикувано преди
  4. Стряскам се от това, което правиш. Искаш ли да ти дам RSS или JSON или нещо от тоя род за форумите? :)

    Иначе, няма начин да присвоиш на име и да го ползваш. Присвояването е твърдение (statement), докато if/while иска израз (expression). Ако дадеш някакъв по-голям фрагмент, мога да се опитам да ти дам по-добра идея как да го пренапишеш.

    Публикувано преди
  5. Ами чудя се дали един RSS feed[0] не би бил полезен и за другите, не само за мен :) При мен fpyscrape вече си работи, пускам го от време на време, вместо да презареждам страницата и да се мъча да си спомня кои теми на коя дата последно съм чел :P

    А иначе основната причина да питам за присвояването са неща като re.match (или regexpvar.match) и if; ама явно ще свикна да пиша m = rv.match(...); if m: на два реда.

    [0] да, един feed за всички мнения във всички теми

    Публикувано преди

Трябва да сте влезли в системата, за да може да отговаряте на теми.