Ako vložiť text do poľa – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako vložiť text do poľa – Python – Fórum – Programujte.comAko vložiť text do poľa – Python – Fórum – Programujte.com

 

hladampomoc
~ Anonymní uživatel
12 příspěvků
3. 11. 2013   #1
-
0
-

Čaute, som v programovaní začiatočník a už dlhšiu dobu stojím na probléme ako vložiť text do poľa. Dajme tomu, že mám nejaký text (cca 1500 slov v niekoľko desiatok riadkov) a chcem celý tento text vložiť do poľa - každé slovo má predstavovať 1 prvok poľa. Zároveň nechcem aby v tom poli boli znaky ako \n \t a pod.. Dá sa to nejak spraviť ?

- vážne vďaka za pomoc, už dlhšie si s tým neviem rady

Nahlásit jako SPAM
IP: 158.195.204.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 11. 2013   #2
-
0
-

#1 hladampomoc
Třeba ten text vůbec do pole vložit nepotřebuješ, jen o tom nevíš, protože kdybys to zkusil vygooglit, zjistil bys, že mnohem jednodušší je rozdělit text do seznamu, ale nějaký příklad na rozdělení do pole tam je taky...

Každopádně zkus popsat co ten program má dělat, taky co už máš hotové a snad ti nekdo poradí, že na to třeba nejdeš nejlíp a nakopne tě správným směrem...

Nahlásit jako SPAM
IP: 88.103.233.–
hladampomoc
~ Anonymní uživatel
12 příspěvků
3. 11. 2013   #3
-
0
-

Tak skúsim podrobnejšie - mám súbor v ktorom sú uložené nejaké údaje. Je tam menný zoznam a ku každému menu je tam mesto a rok. Ja musím spraviť program, pomocou ktorého by som dokázal vyhľadávať v tomto zozname ..

napr. v zozname sú mená:

             Adam   Košice    1.1.1990
             David    Bratislava 30.12.1995

             Martin   Bratislava  25.2.1990

 - no a ja musím spraviť vyhľadávač ( z rôznych kritérii - vyhladávanie podľa mena, mesta, roka), kde ked napíšem napr. Adam - vyhodí mi Adam Košice 1.1.1990 ... alebo zadám vyhľadávanie podľa mesta a napíšem Bratislava a napíše mi David Bratislava 30.12.1995, Martin Bratislava 25.2.1990 ...

 - najprv som si chcel všetko zadať do jedného poľa - aj mená aj mestá aj roky ... následne som chcel toto veľké pole rozdeliť na 3 menšie polia (nakoľko platí, že vždy je tam meno, mesto,rok, meno, mesto, rok - ľahko to rozdelím do 3 polí) - to by boli polia nazvané napr. mena, mesta, roky , a potom by som s tým už nemal mať problém

- problém mám s tým dostať to do 1 veľkého poľa (alebo do 3 malých polí)

 - ďakujem ..

Nahlásit jako SPAM
IP: 158.195.204.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 11. 2013   #4
-
0
-

#3 hladampomoc
No vidíš, tohle přece vůbec nepotřebuješ dávat do pole...

Čti to ze souboru po jednotlivých záznamech a rovnou porovnávej s hledanými údaji...

Nahlásit jako SPAM
IP: 88.103.233.–
hladampomoc
~ Anonymní uživatel
12 příspěvků
3. 11. 2013   #5
-
0
-

#4 JoDiK
asi sme sa celkom nepochopili - tie údaje podľa ktorých sa to má vyhľadávať zadáva uživateľ až nakonci - a vždy zadáva nejaké iné  ...

t.j. tie hľadané údaje nie sú pevné - vždy si ich zadáva uživateľ podľa toho ako chce

Nahlásit jako SPAM
IP: 158.195.204.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 11. 2013   #6
-
0
-

#5 hladampomoc
Na konci čeho? Vždyť z toho souboru ty údaje můžeš číst znova a znova vždy od začátku, takhle fungovalo vyhledávání v databázích už v dobách pravěku počítačů, kdy disky nebyly z nejrychlejších, což se vylepšovalo indexovými soubory...  Nebo je v zadání řečeno, že ůdaje musíš nejdřív načíst do paměti a to konkrétně do pole?

Nahlásit jako SPAM
IP: 88.103.233.–
hladampomoc
~ Anonymní uživatel
12 příspěvků
3. 11. 2013   #7
-
0
-

#6 JoDiK
No vieš pre mňa by to bolo oveľa jednoduchšie spraviť pomocou polí - iba neviem ako to do nich priradiť. Vážne neviem ako by som to robil, podľa tvojho návodu - neviem si to ani predstaviť..

Nahlásit jako SPAM
IP: 158.195.204.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 11. 2013   #8
-
0
-

#7 hladampomoc
A jak bys to dělal s těmi poli? Popiš to klidně nějakým pseudojazykem...

Nahlásit jako SPAM
IP: 88.103.233.–
hladampomoc
~ Anonymní uživatel
12 příspěvků
3. 11. 2013   #9
-
0
-

#8 JoDiK
No už som to písal ..

 - do 1 komplexného poľa by som si priradil celý text - slovo za slovom - každé slovo bude mať 1 hodnotu. Teda napr. príklad kt. som písal hore

           Adam   Košice    1.1.1990
             David    Bratislava 30.12.1995

             Martin   Bratislava  25.2.1990

Adam by mal v poli hodnotu 0, košice hodnotu 1, ten dátum by mal hodnotu 2, david hodnotu 3, bratislava 4 , ...a ten posledný dátum teda hodnotu 7

 - následne z tohoto jedného komplexného poľa si spravím 3 polia - pole mien, pole miest a pole dátumov (to môžem spraviť, pretože pri každom mene je rovnaký počet údajov)

 - ked už to mám v 3 poliach potom je vyhľadávanie jednoduché (nejaké podmienky ako if bratislava in mesta a pod ..) a zároveň viem, že hodnota v poli mien prislúcha hodnote miest aj dátumov - takže ak zadám hodnotu v poli mien ako hodnotu 0 vypíše mi Adam a zároveň hodnota 0 v poli miest je Košice - takže sa to zhoduje

- dúfam, že chápeš ako to myslím, lebo som to napísal tak komplikovane

Nahlásit jako SPAM
IP: 158.195.204.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 11. 2013   #10
-
0
-

#9 hladampomoc
Představuješ si to nějak moc komplikovaně...

Ještě jsi nenapsal, jak vypadá ten soubor... Předpokládám, že to je textový soubor, kde jednotlivé záznamy tvoří řádky a položky jsou v nich odděleny mezerami, nebo jsou tam jen hodnoty oddělené mezerami?

Každopádně si klidně představ, že ten soubor je jako to tvoje komplexní pole.

Takže zjistíš od uživatele co chce hledat.

postupně čteš ze souboru řádek za řádkem( řádek= záznam). Ten rozdělíš na jednotlivé položky (slova), které porovnáš s hledanými. Když jsou stejné, vypíšeš záznam a jdeš na další položku.

Python neznám, ale podle internetového zdroje vidím, že pythonovo rozdělovnání pomocí split to dává do seznamu, nebo-li pole, tak by to čtení a porovnávání (pro jméno) mohlo probíhat třeba takto:

print "Hledame Adama"
with open('input.txt','r') as f:
  for line in f:
 
    words = line.split(" ")

    if words[0] == "Adam":
      print line

print "Hledame Bratislavu"
with open('input.txt','r') as f:
  for line in f:
 
    words = line.split(" ")

    if words[1] == "Bratislava":
      print line
Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 11. 2013   #11
-
0
-
Nahlásit jako SPAM
IP: 88.103.233.–
JoDiK
~ Anonymní uživatel
987 příspěvků
3. 11. 2013   #12
-
0
-

#11 JoDiK
Zadávání hledaných údajů a jejich vyhodnocování už určitě zvládneš sám...

Nahlásit jako SPAM
IP: 88.103.233.–
hladampomoc
~ Anonymní uživatel
12 příspěvků
4. 11. 2013   #13
-
0
-

super, vyzerá to dobre - len som zabudol na jednu dôležitú vec ...

napr. ked zadám hľadám podľa roka - zadám napr. 1995, tak nemá vypísať David Bratislava 30.12.1995, ale má vypísať iba 30.12.1995 David (t.j. nemá vypísať mesto a zároveň musí vymeniť dátum a meno - najprv vypíše dátum a až potom meno) - a takto to žiaľ nejde vypísať pomocou print line

 - prepáč, mal som na to upozorniť skôr, moja chyba ..

Nahlásit jako SPAM
IP: 158.195.204.–
hladampomoc
~ Anonymní uživatel
12 příspěvků
4. 11. 2013   #14
-
0
-

a z tohto dôvodu si myslím, že je to najrozumnejšie hodiť do poľa

Nahlásit jako SPAM
IP: 158.195.204.–
JoDiK
~ Anonymní uživatel
987 příspěvků
4. 11. 2013   #15
-
0
-

#14 hladampomoc
Hele, ty tomu programování moc nedáš že?

Četl jsi aspoň co jsem ti napsal?

pythonovo rozdělování pomocí split to dává do seznamu, nebo-li pole

A v jiném pořadí a bez města to přece vypíšeš třeba takto:

print words[2] , words[0]

(koukám, že python má problematické vypisování textu na jeden řádek, ale to už zvládneš sám, ne?)

Nahlásit jako SPAM
IP: 88.103.236.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Ako vlozit text do MDI okna ? — založil dodo_mt

Jak vložit text do formuláře — založil beachboy

Ako vložiť video sem — založil Xmanik

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý