Pieniä kysymyksiä ohjelmoinnista

Piti oikein etsiä, kun Pythonia en tunne: "list comprehension" on näköjään nimi tuolle num + op for num, op in data
Ei ole, jos ympärillä ei ole hakasulkuja. Jos ympärillä on tavalliset sulut, niin se on "generator expression", joka on tavallaan "laiska list comprehension", eli operaatiot suoritetaan vasta silloin kun niitä tarvitaan, ja sitä kokonaista uutta listaa ei koskaan muodosteta.
 
Ei ole, jos ympärillä ei ole hakasulkuja. Jos ympärillä on tavalliset sulut, niin se on "generator expression", joka on tavallaan "laiska list comprehension", eli operaatiot suoritetaan vasta silloin kun niitä tarvitaan, ja sitä kokonaista uutta listaa ei koskaan muodosteta.
Eivätkö nuo sulut kuulu Stringin join() metodille?

Sama se, jännää:
Python:
>>> a = [2,3,4,5]
>>> val ** 2 for val in a
  File "<stdin>", line 1
    val ** 2 for val in a
             ^
SyntaxError: invalid syntax
>>> (val ** 2 for val in a)
<generator object <genexpr> at 0x7fd90f97e9e0>
>>> [val ** 2 for val in a]
[4, 9, 16, 25]
>>> list(val ** 2 for val in a)
[4, 9, 16, 25]
>>> list((val ** 2 for val in a))
[4, 9, 16, 25]

C++23 imitoi:
C++:
#include <print>
#include <vector>
#include <ranges>
int main() {
  std::vector a{2,3,4,5};
  println("{:}", a | std::views::transform([](int n) { return n * n; }));
}
Tulos:
Koodi:
[4, 9, 16, 25]
 
Eivätkö nuo sulut kuulu Stringin join() metodille?

Sama se, jännää:
Python:
>>> a = [2,3,4,5]
>>> val ** 2 for val in a
  File "<stdin>", line 1
    val ** 2 for val in a
             ^
SyntaxError: invalid syntax
>>> (val ** 2 for val in a)
<generator object <genexpr> at 0x7fd90f97e9e0>
>>> [val ** 2 for val in a]
[4, 9, 16, 25]
>>> list(val ** 2 for val in a)
[4, 9, 16, 25]
>>> list((val ** 2 for val in a))
[4, 9, 16, 25]

C++23 imitoi:
C++:
#include <print>
#include <vector>
#include <ranges>
int main() {
  std::vector a{2,3,4,5};
  println("{:}", a | std::views::transform([](int n) { return n * n; }));
}
Tulos:
Koodi:
[4, 9, 16, 25]
Hyvä kysymys! Pythonissa on erikseen poikkeussääntö tilanteeseen, jossa generator expression on funktion/metodin ainut argumentti. Tällöin yhdet sulut riittää:
The parentheses can be omitted on calls with only one argument.
 
Kyselläänpä taas

Digiboksi Vu+ ja siinä VTi ohjelmisto

Jos menen selaimella boxiin http://ip/ niin siinä näkyy nyt menevät ohjelmat. Ok mutta jos klikkaan ylhäältä kolmeviivaa-nappia niin aukeaa menu, josta voi valita Epg. Haluaisin linkin joka menee suoraan Epg:hen, ettei tarvi joka hiton kerta klikkailla noita turhia välivaiheita.

Selaimen alarivillä lukee urlina sekä menua avatessa että sekä valittaessa menusta epg:tä vain "javascript:void(0);", kun vie hiiren osoittimen siihen klikkauskohdalle.

Ja kun ollaan Epg:ssä (tai missä vain) niin selaimen ylä-url-kentässä on vain tuo http://ip/ eikä mitään muuta.

Aloitussivulta se nappi jolla avataan menu, on

xpath
//*[@id="leftsidebarin"]
full xpath
/html/body/span/nav/div/div[1]/a[2]
selector
#leftsidebarin

ja siitä menusta kun valitaan epg niin se on

xpath
//*[@id="leftsidemenu"]/div/ul/li[6]/a/span
full xpath
/html/body/span/section/aside[1]/div[1]/div/ul/li[6]/a/span
selector
#leftsidemenu > div > ul > li:nth-child(6) > a > span

Pystyykö näillä tekemään mitään spesiaali-urlia joka menisi suoraan Epg-sivulle?
 

Uusimmat viestit

Statistiikka

Viestiketjuista
302 889
Viestejä
5 153 623
Jäsenet
82 250
Uusin jäsen
bellastar

Hinta.fi

Back
Ylös Bottom