elorap Napisano Czerwiec 28, 2011 Zgłoszenie Share Napisano Czerwiec 28, 2011 Dzień dobry. Szukałem na necie jak to zrobić, ale z nie najlepszym rezultatem. Programista ze mnie żaden, potrzebuję po prostu napisać jeden program dla własnych potrzeb. Problem jest natury technicznej nie algorytmicznej, czyli każdy średnio doświadczony programista zrobiłby to w 5 min, a dla mnie to męka. plik wejściowy 1324, 1234, 12354, 1234, 1234 1324, 1234, 12354, 1234, 1234 1324, 1234, 12354, 1234, 1234 1324, 1234, 12354, 1234, 1234 1324, 1234, 12354, 1234, 1234 . . . kilka tysięcy linii z pięcioma czy też sześcioma intami (0-10000). Chcę je wczytać do tablicy dwuwymiarowej, tablica będzie powiększona o dodatkowe kilka kolumn, gdzie będę chciał pisać jakieś wyniki późniejszych operacji. Proszę o pomoc Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Czerwiec 29, 2011 Zgłoszenie Share Napisano Czerwiec 29, 2011 To jest zwykłe czytanie z pliku z delimiterem. Na necie znajdziesz setki tutoriali jak to zrobić. Poza tym nie wiem, dlaczego napisałeś tu, a nie na jednym z wielu for programistycznych np. http://4programmers.net/ Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Czerwiec 29, 2011 Zgłoszenie Share Napisano Czerwiec 29, 2011 Jeśli potrzebujesz napisać coś dla własnych potrzeb to zmień język, szybciej się nauczysz pythona niż to skończysz w C. #!/usr/bin/env python #-*- coding:utf-8 -*- with open('/home/lucas/dane.txt') as txt: dane = [ line.rstrip('\n').split(', ') for line in txt] # wypisz for row in dane: print row # dodaj kolumnę for i, row in enumerate(dane): dane[i] += ['cos'] # wypisz for row in dane: print row # pobierz 2 wiersz, 3 kolumnę print print dane[2][3] Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
elorap Napisano Czerwiec 30, 2011 Autor Zgłoszenie Share Napisano Czerwiec 30, 2011 Witam, napisalem tutaj, bo w wynikach google dla mojego zapytania wyrzucilo mi kilka for, miedzy innymi to, a na Waszym forum byla najswiezsza odpowiedz na podobny problem. Co do jezyka, to C troche pamietam z LO, poza tym, zdazylem juz przeczytac tutorial C z wikibooks, a pythonaa na oczy nie widzialem. Jestem juz po wstepnych ogledzinach tutoriala z wikibooks i wydaje sie byc calkiem ok, ale mimo wszystko jest dla mnie totalna nowoscia, a C az tak totalna nie. Ogólnie chce napisac mniej wiecej taki programik wczytac te dane do tablicy for i=1 to 10 for j=1 to 10 for k=1 to 50 for kazdy wiersz z tablicy (+- 2000) i tutaj kilka funkcji dzialajacych na kilku wierszach (maksymalnie i+j ilosci) plus wypisanie do pliku wyników dla kazdej trójki i, j, k To bedzie jakies 10 mln wykonan najglebszej petli, a funkcji bedzie kilka i beda braly za argumenty po kilka wartosci z wierszy. Bede na pewno potrzebowal double float, nie wiem czy python ma cos takiego Patrzac mniej wiecej na to co chce zrobic, latwiej mi bedzie w pythonie, czy jednak w C? aaaa... i dzieki borzole za kod Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Czerwiec 30, 2011 Zgłoszenie Share Napisano Czerwiec 30, 2011 Patrząc mniej więcej na to co chcę zrobić, łatwiej mi będzie w pythonie, czy jednak w C? Zawsze będzie łatwiej w pythonie, ale program będzie wykonywał się wolniej niż napisany w C. Tych operacji nie będzie aż tak strasznie dużo to może być nawet w pythonie, chociaż jeśli bardzo zależy Ci na wydajności to lepiej C. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
elorap Napisano Czerwiec 30, 2011 Autor Zgłoszenie Share Napisano Czerwiec 30, 2011 Zawsze będzie łatwiej w pythonie, ale program będzie wykonywał się wolniej niż napisany w C. Tych operacji nie będzie aż tak strasznie dużo to może być nawet w pythonie, chociaż jeśli bardzo zależy Ci na wydajności to lepiej C. Na wydajności zupełnie mi nie zależy. Ma się robić, a jak się będzie robić jest zupełnie nieważne. No to ok, uczymy się pythona Dzięki za pomoc, pozdro Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
elorap Napisano Lipiec 1, 2011 Autor Zgłoszenie Share Napisano Lipiec 1, 2011 a jeszcze takie coś... bo pierwotnie to miało być po dwa i, j, k, czyli i, i1, j, j1= {1..10} k, k1={1..50} i to wszystko zapętlone w forach. czyli 5000 do kwadratu razy jeszcze 2000, bo ilośc wierszy tablicy. Czyli w sumie 5*10^10 wykonań najgłębszej pętli, czy mogę tak zrobić, czy za dużo tego? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
thof Napisano Lipiec 1, 2011 Zgłoszenie Share Napisano Lipiec 1, 2011 Czyli w sumie 5*10^10 wykonan najglebszej petli, czy moge tak zrobic, czy za duzo tego? To zalezy na czym zamierzasz to odpalac i przede wszystkim od tego jakie operacje bedziesz wykonywal wewnatrz petli. Samo przejscie po takiej pustej petli to nie jest nic nadzwyczajnego, ale jak skomplikujesz przetwarzanie wczytanych liczb to mozesz nie doczekac konca Stwórz sobie taki plik i spróbuj przejechac go petla (nie drukuj nic na wyjscie, bo w ten sposób zabijesz wydajnosc). Python dosyc slabo radzi sobie z wielkimi zbiorami danych (widzialem kiedys przyklad, ze na drzewach nie dawal rady, kiedy java dopiero sie rozgrzewala), ale napisanie takiego programiku zajmie Ci chwile i bedziesz wiedzial wszystko. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się