- Xiaomi 15 - kicsi telefon nagy energiával
- A sógorokhoz érkezik a kompakt Vivo X200 FE
- Mobil flották
- Csak semmi szimmetria: flegma dizájnnal készül a Nothing Phone (3)
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Redmi Note 13 Pro+ - a fejlődés íve
- iPhone topik
- Samsung Galaxy Watch6 Classic - tekerd!
- Milyen okostelefont vegyek?
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
Új hozzászólás Aktív témák
-
jerry311
nagyúr
-
jerry311
nagyúr
Hatékonyabb, rövidebb kód volt a cél, mert én Pythonban jelenleg kb. olyan messze vagyok a hatékony programozástól, mint hentes a sebésztől. Ha le kell vágni valamit, akkor az megy, csak nem lesz szép.
Köszönöm!
Ilyesmire gondoltam, mert ugyan a kódom megoldotta a feladatot, de nem tűnt helyesnek, ahogy elértem a megoldást. Lásd pl.res
dictionary/tömb.A : résszel nem volt gond (szerintem), mert a delimiterben előtte és utána is van space. Ilyen csak középen fordul elő.
-
kovisoft
őstag
Ez villogást (vagy ha nem lámpáról lenne szó, akkor egyéb mellékhatást) okozhatna, valószínűleg az sem véletlen, hogy nem azt csinálja a program, hogy először mindent kikapcsol, aztán bekapcsolja azokat, amiket be kell. De persze, ha ez nem zavaró, akkor úgy is lehet csinálni, ahogy írod.
-
Hege1234
addikt
köszönöm!
így szuperül működik
egyenlőre eddig ilyen, te is ilyesmire gondoltál?
import re
import glob
log_file_pattern = ".\\drmfiles\\programok\\firefox-log\\log.txt.moz_log.*"
log_files = glob.glob(log_file_pattern)
found_tokens = set()
patterns={
"app_key":[r"header=.app_key..value=.(.*)..merge=0]"],
"azukiapp":[r"E/nsHttp...AzukiApp:.(.*)"],
"azukiststoken":[r"E/nsHttp...AzukiSTSToken:.(.*)"],
"natcho":[r"E/nsHttp.uri=.*natco_key=(.*)&device_type=WEB&channel_number="],
"Device_Id":[r"header=.Device-Id..value=.(.*)..merge=0]"],
"bff_token":[r"header=.bff_token..value=.(.*)..merge=0]"],
"azudrm":[r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"',
r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)"],
"sess_id":[r"https://.*wv_getlicense.*session_uid=(.*?)&"],
"acc_ount":[r"E/nsHttp.uri=.*user_token=(.*)&session"],
"get_lic":[r"E/nsHttp uri=(.*wv_getlicense.*token.*)"]
}
results = {}
while found_tokens != set(patterns.keys()):
for file_path in log_files:
try:
with open(file_path, 'r') as file:
tdata = file.read()
for key, patternlist in patterns.items():
if key not in found_tokens:
for pattern in patternlist:
try:
token = re.findall(pattern, tdata)[0].strip()
results[key] = token
found_tokens.add(key)
except IndexError:
pass
except Exception as e:
print(f"Error processing {key}: {e}")
except (IndexError, FileNotFoundError):
print(f"File not found: {file_path}")
except Exception as e:
print(f"Error processing file {file_path}: {e}")
app_key = results["app_key"]
azukiapp = results["azukiapp"]
azukiststoken = results["azukiststoken"]
natcho = results["natcho"]
Device_Id = results["Device_Id"]
bff_token = results["bff_token"]
azudrm = results["azudrm"]
sess_id = results["sess_id"]
acc_ount = results["acc_ount"]
get_lic = results["get_lic"] -
Köszönöm, átgondolom. Egyébként gondolkoztam.
Az egyik ötlet az volt, hogy eleve set-be kéne kibontani az intervallumokat, és az kiszűri az ismétlődő elemeket.
De akkor is kifutna a 32MB-ból szerintem.A másik, hogy röptében - tehát olvasom a txt-ből bolygó1 első intervallumot, kibontom, olvasom a bolygó2 első intervallumát a txt bolygó1 hossz+1. sorából és a kettő intervallumból kiszedem ami nem közös, és így tovább. Ha meg nem egyenlő hosszú a két bolygó listája, akkor kitöltöm 0-val a rövidebbet. Nem írtam meg, kérdés mennyi idő mindig ugrálni a txt-ben, az is jelentős.
-
tvamos
nagyúr
Koszonom! Jol jott, hogy szoltal, mar csak azert is, mert volt is benne ilyen, meg ugralok python, es c (arduino) kozott, es neha belezavarodom. Nem vagyok programozo sem... csak ez most ram szakadt. (Nem akarom mar kockas fuzetbe irogatni a meresi eredmenyeket...
)
(#3967) sztanozs
Koszonom! -
Hege1234
addikt
huhh ez a zip-es megoldás nagyon jó
köszönöm, tökéletesen működikamire még kíváncsi lennék, hogy mivel a 177 részből csak 155 -höz van magyar felirat
jsonpath_expression5 = parse('[*].data.DmcEpisodes.videos[*].mediaMetadata.captions[*].renditionName')
ebben általában van 20-30 adat
pl.
Japanese
de--forced--
Magyar
Chinese (Traditional)
Español (Latinoamericano)nekem innen csak akkor kell, ha valamelyik sorban szerepel benne a Magyar
erre esetleg rá tudok szűrni és egybegyúrni a zip-es megoldással?
így jól látható lenne melyik részhez van/nincs magyar feliratfor match1,match2,match3,match4,match5 in zip(jsonpath_expression1.find(my_responses),jsonpath_expression2.find(my_responses),jsonpath_expression3.find(my_responses),jsonpath_expression4.find(my_responses),jsonpath_expression5.find(my_responses)):
print(f'{match1.value} - S{match2.value}E{match3.value} - {match4.value} --- {match5.value}') -
cousin333
addikt
Mégegyszer: a kódom működik és szerintem jól átlátható. Az eredetileg felvetett megoldás javított kiadása, demonstráció céljára éppen megfelel. Éppen azért nem használom a gyári függvényt, mert az lehet, hogy gyors, de nem látszik a mögöttes logika. Az algoritmus lehetne szofisztikáltabban és optimalizáltabb, de pár száz elemre nem igazán lesz látványos a különbség. Az meg, hogy millió elemre nem a leggyorsabb...
Egyébként list comprehension-nel is megoldható lenne, ha generátor függvényt használok, ami belül számon tartja az addigi prímszámokat. Az sem lenne optimális, mert kétszer tárolnám el a prímlistát.
ui: Így jobban megnézve az én kódomban (#3748) egy fia list comprehension sincs...
-
cousin333
addikt
A kód nem attól lesz jó vagy rossz, hogy mennyire hosszú, hanem hogy mennyire érthető és áttekinthető. A Python segítségével szerencsére tömör és áttekinthető kód írható. Érdemes az alap paradigmákat és a szintaktikát hamar elsajátítani, mert gyorsabbak, átláthatóbbak és hatékonyabbak. Ráadásul így nem készülnek később
for i in range(len(szamok)):
típusú kódok sem.A te példád szerintem nem lett olvashatóbb mint az enyém, de valamivel kétségkívül hosszabb.
Ráadásul a "code golf"-ot átírtad "algoritmus golfra" a rekurzivitással. Lehet, hogy hatékonyabb csillió számnál, de sanszos, hogy azt úgysem fogod kilistázni, és különben is a beépített függvényt fogod alkalmazni.
-
tvamos
nagyúr
Kiprobaltam, hogy ez mukodik:
harommal_oszthato = [i for i in szamok if i%3 == 0]
De nem nagyon vagom, hogy miert van az "i" a "for" elott, es miert van az "if" utana. De azt latom, hogy ez igy nagyon hatekony.
De lehet, hogy nem kene hasznalnom, mert van, hogy 6-8 honapig nem nyulok Pythonhoz, es kesobb csak megkavarodom tole. -
Hege1234
addikt
köszi ezek így nagyon praktikusak
és már tudtam is máshova alkalmazni
átírtam minden tanácsot
aminek a révén rájöttem, hogy rosszul vezettem lemivel loopolva van, így úgy kell az
inputot értelmezni, hogy a számokat amik be vannak írva pl az 1 3 9
azokat így kellene elvileg megkapnianums = input('\nírd ide a számokat: ').split()
#1 3 9
végigmegy a list1-esen
nums = input('\nírd ide a számokat: ').split()
#3
végigmegy a list3-ason
nums = input('\nírd ide a számokat: ').split()
#9
végigmegy a list9-esen
nums = input('\nírd ide a számokat: ').split()
#és itt már újra várja a számot/számokat -
Hege1234
addikt
ki van printelve, hogy mit tud csinálni a számokkal
minden egyes szám mást csinálígy tudna a user lekérni egyszerre több mindent nem csak egy számnak a tartalmát
átnézi és egy sorba beírja mi kell neki
pl ezt írja az inputba
1 3 7 15gondolom akkor ezt kellene szeparálni, hogy a számok közötti szünet kapjon egy új sort '\n' ?
-
Hege1234
addikt
köszi, kipróbálom majd
valahogy úgy tudnám leírni, hogyan használnám, hogy eddig
szövegszerkesztőből másoltam ki az egymás alatt lévő számokat
ezeket kijelöltem és beillesztettem az inputba
így automata minden új sorba került
(ahogy végzett egy számmal beadta a következőt)
szóval azt szeretném elérni, hogy ne kelljen már a szövegszerkesztőbe egymás alá tenni a számokat -
axioma
veterán
Csak azert hogy ha valaki netes keresessel idetalalna Munkres ugyben: az az implementacio disallowed-es peldakra idonkent vegtelen ciklusba is megy, nem csak randa (javitas: a find_smallest ha sys.maxsize-zal terne vissza akkor unsolvablematrix). A scipy implementacio van me'g pythonban, de csak disallowed nelkul, persze n*max(costmatrix)-ot irva belejuk es utoellenorizve kikerulheto.
-
Hege1234
addikt
nem kell, hogy ki tudjanak belőle lépni
(majd max bezárják abból kevesebb a gond)
ez így tökéletes, köszi a dict-es kiegészítést is a komplexebbekhez azt fogom használnilehet felsorolást tenni az expect után?
except ValueError,KeyError:mert nekem erre hibát dobott
különszedve működött és az options= végén kicserélve } használvaegyébként bill figyelés is egy jó ötlet
mivel a batch fájlban a menük egérrel és bill-el is irányíthatóak
jó lenne ide python-ra is áthozni ezt a funkciót
bill kurzorokra találtam megoldást amivel lehet navigálni, de egérrel navigálást még nem
létezik erre megoldás?
mert a tkinter és hasonló társainak a konzolra nincs hatásuksh4d0w
ezt valahogy a dict-es példával és az előttivel
se tudtam működésre bírni -
Hege1234
addikt
def pick(options):
print("\nminőség kiválasztása:\n")
for idx, element in enumerate(options):
print("{} = {}".format(idx + 1, element))
while True:
try:
ans = input("\nírd ide a számot: ")
num = int(ans)
break
except ValueError:
print("ide csak számot írhatsz!")
continue
try:
if 0 < int(num) <= len(options):
return int(num) -1
except:
return None
options = ["1080", "720", "540", "480", "360"]
res = pick(options)
try:
quality = options[res]
print(quality)
except TypeError:
print("csak 1-5-ig írhatsz ide számot!")beleírtam amit tanácsoltál és kiszedtem az i-t is
már csak számokat fogad elazt pl. hogyan kell megoldani hogy ne léptessen ki, ha 0 van beleírva vagy pedig pl. 13?
semmi iskolai feladat vagy hasonló, kimondott tutorial-t sem követek
(persze, utánaolvasok a dolgoknak mit, hogyan kellene)van egy kb 2500 soros .bat fájlom amit elkezdtem átírni python-ra
kombinálva tkinter-el szóval még sokminden idegen ezen a nyelven..most csak annyi volt a célom, hogy egy beírt szám
meghatározott értékét
eljuttassam a subprocess-nek'+quality+'
subprocess.run([yt_dl, '--no-warning', '--no-check-certificate', '--allow-u', '-f', 'bv[height<='+quality+']', '--fixup', 'never', '-N', '16', '-o', video, mpd])
-
jbalint18
tag
Köszönöm szépen a választ ! A megfejtés akkor megvan most már csak a megvalósítással van probléma. Létrehoztam : x16+x26+x36=6 fiktív és mind a másik 3 egyenletet kitoltam még 1 sorral ahogy írtad. Valamit biztosan elrontok az írás közben mert kaptam egy ilyen hibaüzenetet : "Invalid input for linprog: A_ub must have exactly two dimensions, and the number of columns in A_ub must be equal to the size of c . " Behoztam pedig +1et mindenhova ahogy azt kell. Szóval ezt nem értem mire írja . [link] Esetleg ha az időd enged rá tudnál csekkolni hogy min bénázok ?
-
axioma
veterán
Jol latom, nem vettel fel segedvaltozokat a kulonbozetre? Szerintem az hianyzik hogy az F1-F5 elhasznal valamennyit, de marad(hat) a vegen, azt is fel kell venni mint valtozot mert ugy jon ki a 70 keszlet. Igy meg megoldhatatlan, tulhatarozott, szerintem az a baja. Legyen minden sorra hatodik valtozod, erteke ugyanugy 0-tol barmeddig, de a celfuggvenyben nincs sulya.
-
axioma
veterán
-
cousin333
addikt
Nem fogalmaztam elég pontosan. Erre a méretre kb. mindegy, hogy mit használ. Ha (jóval) több adat van, akkor jöhet jól a deque, ami elvileg pont ilyen cirkuláris buffer szerű használathoz van.
Ami a sebességet illeti: van a programozás sebessége, meg a futtatásé. A kettő együtt már nem feltétlenül rosszabb a Python esetében, más nyelvekkel összevetve, hacsak nem 7/24-ben nyomják. De egy optimálisan megírt kód, ami a háttérben C függvényeket használ (tehát pl. nem "natív" Python for ciklus), szerintem nyers sebességben sem vall szégyent. Alkalmazásfüggő.
-
samujózsi
senior tag
Egyelőre tippem sincs, de...
Milyen Python verzió?
Mi van, ha nem pycharm-ban futtatod? (már feltéve, hogy nem valami pycharm kiegészítőt hegesztesz)
Az utolsó print előtt nem hiányzik két szóköz? (bár ez nem befolyásolja az eltűnő pontok rejtélyét)Ha csak ezt futtatom, nekem teljesen jó - igaz, parancssorból, python3-mal.
Ugye nincs benne multithreading vagy hasonló borzalom? -
m4rc!
őstag
Értem. Csak fel akarom használni kivonásra meg szorzásra és osztásra is..
Most belefutottam ismét egy problémába. Ha betöltöm számokat tartalmazó listát fájlból, hogy tudom kiszámoltatni a számok különbségét pl.?with open('adat.txt', 'r', encoding="utf-8") as f:
txtolvas = f.read().split()
szamok = list(map(int, txtolvas))
eredmeny = 0
print("Az adat.txt fájlban lévő számok: ", szamok)
if muvelet2 == '+':
for i in szamok:
eredmeny += i
print("Az adat.txt tartalmának összege: ", eredmeny)
elif muvelet2 == '-':
for i in szamok:
eredmeny -= i
print("Az adat.txt tartalmának összege: ", eredmeny)Ha 0-at irok az eredményekhez, akkor 0-ból kzdi kivonogatni, ami nem jó, mert a lista első elemével kellene kezdenie. Ha meg megadom, hogy lista első elemével kezdje, igy:
eredmeny = szamok[0]
, akkor meg plusz első elemként onnan inditja, szóval, lista [10,5]
a.) 0-10-5 = -15 (nem jó, 5-nek kéne lennie.
b.)10-10-5 = -5 szintén nem jó... -
kovisoft
őstag
Én is elvesztettem a fonalat ott, hogy mi van fent-lent, ill. balra-jobbra:
"15 lista van (sorok)"
"bal oldalon mindig nagyobb elemszamu lista van, jobb oldalt egy kisebb"
"jobb oldali listanak is lehet olyan eleme, ami a bal oldaliban nem szerepel"
Meg hogy csoportosítani kell-e a listákat vagy rendezni vagy csoportosítani és azon belül rendezni? -
sztanozs
veterán
Próbálok majd keresni egy '84 előtti helyesírási szótárat (van rá némi esély, nagynéném nyugdíjas magyartanár), de azóta - az elmúlt 35 éveben - biztos így van.
MEK OSZK - magyar angol szótár 1997
MEK OSZK - Egzotikus gyümölcsök magyar neveinek történeti-etimológiai szótára (53. oldal, szószedet)
MEK OSZK - A régi Budapest a fattyúnyelvben (szószedet) -
Lacc
aktív tag
Elnézést
. Igazából élveztem utána olvasni a témának még jobban, mert pont a napokban kezdtem el ráugrani a hackerrank-es probléma megoldásokra, és akár hiszed akár nem elsősorban önmagam fejlesztése céljából tettem. Köszi a mini bemutatkozást, legalább már tudom, hogy kihez fordulhatok még, ha szeretném a fent ecsetelt témakört majd jobban elmélyíteni.
-
kovisoft
őstag
Igen, tökéletesen igazad van, lehet számlálni is, de nem egyetlen számlálót kell akkor sem nyilvántartani, hanem típusonként egyet, mivel az eredeti feladat szerint azt akarta tudni, hogy van-e adott típusú elem a dict-ben (a tuple csak egy példa volt). Tehát a módszereddel kell egy dict a típusokra, és abban nyilvántartani minden típusra az elemek számát. Amúgy Én is EQMontoya elegáns megoldását választanám, hacsak nem kell mindenáron ügyelni a performanciára.
-
Lacc
aktív tag
Röviden O(1) az csak egy kategóra, amely azt jelöli, hogy nem függ a bemeneti elemek számától, n-től.
Megegyezés, hogy O(C) ---> O(1) kategóriának felel meg, ahol C egy konstans, ami > 0. (O(9) --> O(1) lesz)
Másképp, O(bármely konstans) kifejezést az O(1)-nek feleltetnek meg.Röviden O(g(x)) = C * g(x), ahol C egy konstans, ezért mondható, hogy bármely konstans --> O(1)-nek felelthető meg, és O(g(x)) = f(x) pedig csak egy felső becslés az f(x) függvényre az adott x helyen. x --> végtelen alatt. (egyenlőség jel csalóka, tudni kell a mögöttes matekot hozzá értelemezni)
Máshogy, O(1) azt jelöli, hogy a processzornak csak 1db műveletet kell elvégeznie, hogy teljesítsen egy feladatot. Az az, ha van n elemből álló bemeneti lista, akkor a dict-ből 1 elem kivétele csak 1 művelet, for-ral bejárni, már n művelet. Ilyenkor nem is kötelező, hogy a processzor műveletének lefutása független legyen n-től, az az f(x) függvény függhet n-től, de a rá adott felső becslésnek már O()-nak már függetlennek kell lennie.
Dict-ből az elem kivétele még a következkő fontos kategóriát sem éri el, ami az O(log log n), ami a prioritásos sornál tűnik fel
- igen van még kettő közte, de nem igazán találok arra infós példát, hogy hol számítana.
Ha ismered a C pointerek műkődését az segít megérteni, hogy miért is O(1), egy
a
tömb 4-ik indexét így is eléred a C-bena[4]
, ha viszont ismered a C-t, akkor tudod jól, hogy emögött valójában milyen művelet van:*(a+4)
, ahol annyit jelent, hogy az tömb-öt jelöli pointer-hez hozzáadik 4-et akkor megkapot a 4-ik elemet a tömbből (A tömb pointer mindig a tömb első elemére mutat!) -
Lacc
aktív tag
Igen, Ordo(1) közelínek tekinthető. Python-ban ez kifejzetten Ordo(1) közelinek tekinthető (átlag).
Hash Table-ben (amire épül):
Legjobb esetben Ordo(1+lambda/2)
Legrosszabb esetben Ordo(lambda)
Lambda a kihasználási tényező (angolul load factor), lambda = elemek száma / hash tábla memória méreteBővebben link.
Eléggé függ, hogy hogyan van mögötte megvalósítva a hash-elés, ettől is függ a memória mérete.Tipp: Pythonban a dictionary létrehozása literállal:
d={}
kétszer gyorsabb, mint konstruktorrald = dict()
-
Siriusb
veterán
-
kovisoft
őstag
Engem régebben a range() készített ki Python 3-ban, ugyanis itt már lazy módon értékelődik ki (csak akkor, amikor ténylegesen felhasználjuk az elemeit). Próbálgattam command promptban mindenféle range-eket, és csak ennyit írt ki:
>>> range(10)
range(0, 10)Ugyanez Python 2-ben:
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]Python 3-ban pl. a list-tel lehet kikényszeríteni a kiértékelést::
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] -
GreenIT
tag
offoff: a szociban az oroszok jogdijjal "szorakozas" nelkul kiadtak a kulfoldi konyveket oroszra forditve, ezert pl. a JATE matek tanszeki konyvtar eleg jelentos resze orosz nyelvu... /offoff
A BM(G)E is ezt az utat valasztotta, kulonosen az 1990-es evek vege fele, amikor az orosz forditasok elobb erkeztek meg hozzajuk, mint az eredeti angol vagy amerikai konyvek a beszerzesi ido miatt, igy nehanyan mar a forditasi hibakat is kijavitottak addigra.
-
justmemory
senior tag
Persze, oké, csak azért írtam, mert tényszerűen ez volt az utolsó angol nyelvű ajánlás a részletek kiderülte után. De végtére is nem számít, mert... Mindegy. Egyébként én is azt gondolom, hogy ha már a gyerek ilyesmivel akar foglalkozni, akkor igazán kaphatna annyi felnőtt segítséget, hogy angolról fordítanak neki...
OFFOFF: anno matematikus barátom régi orosz könyvekből tanult matekot az egyetemen kiegészítésképpen, pedig nem tud oroszul. De azt mondta, hogy a képletek egyetemesek; ha nagyon kell, akkor szótár meg van.../OFFOFF
-
EQMontoya
veterán
C++-ban a sima set mögött ugye RB tree van, így a string < operátorával pontosan szófa épülne belőle std::set használata esetén, pythonban viszont nincs ilyen kollekció alapból (a set ugye itt hash alapú), olyannal meg nem akartam traktálni a kedves usert, amihez esetleg kell valami további modul.
-
cousin333
addikt
Mit akarsz gyorstalpalni? Youtube videók: [link]
Aztán persze van könyv is: Python for Data Analysis.
Szerintem nem száraz a hivatalos dokumentáció sem, különösen a 10 perces bemutató. Kifejezetten jól dokumentált modul, sok rövid példával. Én is itt kezdtem az alapokkal:
Series
,DataFrame
,Panel
(utóbbi már nincs).Az alap koncepciókat kell megérteni - az meg azért nem egy machine learning -, a többit meg a dokumentációból kikeresed, ahogy a szükség megkívánja. Például hogyan tudok két DataFrame-et egyesíteni oszlopok mentén [link]... stb.
Van már cheat sheet is: [link]
Ha mindenáron oktatást akarsz, akkor itt egy akció: [link]
A Jupyter Notebook használata persze alap az ismerkedéshez...
ui: én már ezt várom: [link]
-
sonar
addikt
A sorhossz limit nálam is gond szokott lenni, főleg ha van egy összetett SQL lekérdezés. (az ilyen warn-ingokat ignorálom) De alapvetően igyekszem betartani az ajánlásokat.
Szerintem ha vki igényes akkor szánjon időt a formázásra is.
Mostanában nem kódolok sokat, de ha ránézek egy összetett kódra azért abból látszik sokszor, hogy mire számitson az ember...
Falra tudnék mászni, mikor össze vissza vannak kommentelve a dolgok, idébb odébb egy-egy tab befigyel...
spacek minden fele..., meg az idióta változó nevektől, össze vissza kis és nagybetükkel -
#82595328
törölt tag
Igazából az intervallumokat én így akarom megadni:
intervals = (2,4,7,12)
Az egyes intervallumokat a változó egymás utáni elemeiből rakom össze (2-4,4-7,7-12), így kevesebb adat kell, relációkkal kezelem az átfedést.
azaz
if változó > intervals[0] és változó <= intervals[1]
parancsok
if változó > intervals[1] és változó <= intervals[2]
parancsok
Ez for ciklussal is menni fog, hiszen csak léptetnem kell a változó elemeit. Szerintem ez már menni fog.Persze simán át lehet alakítani ezt (2,4,7,12) erre (2-4,4-7,7-12) akkor ez is működhet.
for x,y in intervals:
for i in xrange(x,y+1):
parancs()De ez nekem még új. Majd kipróbálom.
Köszönöm a tippeket! Azt hiszem innen már elboldogulok.
-
#82595328
törölt tag
Pedig az tök egyszerű.
Az intervallum változó nem úgy nézne ki, hanem valahogy így
((intervallum1, hozzátartozó érték1),(intervallum2, hozzátartozó érték2),..(intervallumn, hozzátartozó értékn))
Innen már gondolom egyértelmű, hogy bármennyi elem esetén lesz külön parancs.for x,y in intervals: sajnos fogalmam sincs, hogy tudnám használni
-
#82595328
törölt tag
Bocs, de ezt nem is értem.
Nem igazán értek az osztályokhoz. De az elméletét nagyjából megértettem egy lakástervezéses példa alapján.
Az ős egyik tulajdonságát szeretném lecserélni az új osztályban. Ez lenne az osztályok egyik előnye. Hogy könnyedén lehet módosítani az alapprogramot annak módosítása nélkül.Azaz tételezzük fel, hogy Egy az egy sima szoba, egyik a magasság, másik a szélesség.
A Ketto osztály meg legyen egy kör alakú szoba, ahol az egyik a magasság (ezt örökölnő az ősből), a másik pedig a sugár(erre cserélném le a szélességet). (Lehetett volna négyzet, meg kör alapú hasáb is. A magasság meg terület így lenne értelme a szorzásnak, de a probléma szempontjából mindegy.)Azaz az az Egy(sima szoba) mintát akarom módosítani egy Ketto(kör alakú szoba) mintára. Úgyhogy az attribútumok értékét felhasználói input adja meg.
Tehát lényegében az osztályok első előnyét akarnám leprogramozni, hogy egy meglévő mintát (osztályt) felhasználva, készítek egy másik mintát (osztályt). Még csak nem is bonyolítottam egyelőre másik metódussal. Ennek egyszerűnek kellene lennie, de mégsem az.Tehát még egyszer első körben szeretnék egy osztályt módosítani egy származtatott osztállyal. Ez lenne a programomnak a lényege. A felhasználói adatbekérés már csak ráadás. De így is működnie kellene.
-
cadtamas
tag
Köszönöm!
Azért kell a pár második tagjának indexe, mert az a pár kell aminek mindkét tagja előrébb van.(5,1,3,2,7,4) (5) nél az eredménynek (3,2)-nek kell lennie, hiába kezdődik az (1,4) hamarabb
Még valami ilyesmin gondolkodom:
for num, pair1 in enumerate(ints):
pair2=s-pair1
Csak nem tudom a pair2 indexét hogyan tudnám kikönyörögni... -
justmemory
senior tag
Na igen, ez nehéz... nekem volt olyan problémám, amit 1 hétig gugliztam és olvasgattam, mire sikerült megoldást találni... Kitartás...
Sajnos a 3-al egyáltalán nincsen tapasztalatom, a 2.7-el is csak minimális; telón 2.5 van elsősorban, így bizonyos szempontból ahhoz vagyok kötve.
Egyébként most találtam a telómon egy scriptet; opengl tesztelésre lett írva pythonban (na nem általam),
és ott lehet egy objektumot mozgatni, alapvetően nem használ ablakkezelőt; legalábbis nem importálja pl.
a gtk modult. -
justmemory
senior tag
Ja értem
Egyébként egyfelől a próbálgatás maga is tanulás. De azért ezt nem úgy kell elképzelni, hogy kútfőből nekifogok valamit beírni aztán hátha jó lesz
Ahhoz, hogy végül akár alkalmazásokat is tudjak írni, meglehetősen sokat kellett olvasnom is; hol könyvet, hol fórumokat, hol kódokat, hol manuálokat. Számomra ez hatékonyabb volt, mert mindig lelkes maradtam. Amikor meg csak a tankönyvet követtem, sajnos hamar ráuntam... Ez csak tanulási módszertan; számomra ez válik be. Az megint más kérdés, hogy számomra ez hobbi, semmi egyéb
A tk számomra fehér folt, valamiért "nem tetszett", szóval ezt passzolom.
-
EQMontoya
veterán
Tisztában vagyok vele, voltam pár progverseny döntőjében (Ericsson, NNG, stb), és hidd el, sokat tud számítani a megfelelő algoritmus megtalálása után némi bitbaszkurálás, amivel mondjuk 3 óráról leviszed a futási időt félre.
A legutóbbi nagyobb cucc, amit Pythonban csináltam, több gigás logfile-okat parse-ol fel. Nem árt ésszel csinálni.
-
Szenty
tag
Javasolt olvasmány: Python Patterns - An Optimization Anecdote
-
cousin333
addikt
Félreértés ne essék, a te megoldásod is teljesen jó, sőt, rövid tesztem alapján valamivel gyorsabb is. Csak nekem meg valahogy a list comprehension rögzült, talán azért, mert a Java nem fertőzött meg
.
A tuple meg azért az, mert elvégre tuple unpacking-ről van szó
. Egyébként teljesen jó a lista is.
-
cousin333
addikt
Azt hiszem a helyes megoldás ez lenne, ami mellesleg megszünteti a félreértéseket is:
if a%2 == 1 is not winningSit(n/a):
Egy másik érdekesség számomra ez a két sor:
n,m=map(int,raw_input().split())
arr=map(int,raw_input().split())Nekem valahogy nem a map jut eszembe megoldásként, sokkal inkább a list comprehension, különösen a második sornál:
n, m = (int(i) for i in raw_input().split())
arr = [int(i) for i in raw_input().split()]
Új hozzászólás Aktív témák
Hirdetés
- Sorozatok
- Vezetékes FEJhallgatók
- WLAN, WiFi, vezeték nélküli hálózat
- Debrecen és környéke adok-veszek-beszélgetek
- Jogász topic
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- PROHARDVER! feedback: bugok, problémák, ötletek
- Xiaomi 15 - kicsi telefon nagy energiával
- A sógorokhoz érkezik a kompakt Vivo X200 FE
- Fájdalmasan gyenge kijelzőt válaszott a Switch 2-höz a Nintendo
- További aktív témák...
- Xiaomi 11T Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 14 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
- !FELVÁSÁRLÁS! RTX 4090 KORREKT ÁRON AZONNAL
- GAMER PC - RYZEN 5 5500 / ASUS RTX 2060 / AORUS 16GB DDR4 / 512GB SSD / 500GB HDD
- HP Victus 15-fb1002AX - 15,6"FHD IPS - Ryzen 5 7535HS - 8GB - 512GB SSD - RTX 2050 - Win11
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Gigabyte A620M R5 7500F 32GB DDR5 512GB SSD RX 6700 XT 12GB ZALMAN S3 TG CM 700W
- HPE Apollo 4200 Gen9 2U rack szerver, 1x E5-2620v4, 64GB RAM, 24x3.5" 2U-ban! ÁFA-s számla, garancia
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest