1 / 27

Operacje na kontenerach

Operacje na kontenerach. 1) Listy i krotki. list (arg) ‏. >>> list ((5,10)) ‏ [5,10] funkcja zwraca argument jako listę. filter (funkcja, lista) ‏ zwraca wszystkie elementy listy dla których funkcja zwraca wartość true. Def JestAla (s) ‏ return s.find('ala') == -1.

zion
Download Presentation

Operacje na kontenerach

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operacje na kontenerach 1) Listy i krotki • list (arg)‏ >>> list ((5,10))‏ [5,10] funkcja zwraca argument jako listę • filter (funkcja, lista)‏ • zwraca wszystkie elementy listy dla których funkcja zwraca wartość true

  2. Def JestAla (s)‏ return s.find('ala') == -1 >>> s=['ala' , 'fala', 'python', 'ciągnik'] >>>filter(JestAla,s)‏ ['python', 'ciągnik'] • map (funkcja, lista) – zwraca rezultat wykonania funkcji dla każdego elementu listy • >>> import string • >>>s=['tomek', 'ziomek'] • >>>map(string.capitalize,s)‏ • >>>['Tomek', 'Ziomek']

  3. reduce (funkcja, lista) >>> import operator >>> reduce(operator.mul,[2,3,4,5])‏ 120 # 120 = (((2*3)*4)*5)‏ Funkcja pobiera dwie pierwsze dane z listy, wykonuje na nich działanie, dalej działa na zwróconym wyniku i kolejnej zmiennej aż do wyczerpania danych.

  4. zip(lista) >>> zip ([1,2], [3,4])‏ [(1,3),(2,4)] Funkcja pobiera odpowiadające sobie elementy w sekwencjach i tworzy z nich krotki.

  5. 2) Operacje tylko dla list • append (obiekt), extend (obiekt)‏ Append dodaje jeden element do listy, extend dodaje do listy druga listę. >>>lista1=['python'] >>>lista1.append('c++')‏ >>>lista1 >>>['python','c++'] >>>lista1.extend['java', 'c#'] >>>lista1 >>>['python','c++','java','c#']

  6. index(obiekt)‏ Zwraca pierwszy element w liście który ma taką samą wartość jak obiekt. Jeśli nie ma takiego wyrzuca wyjątek ValueError. • count (obiekt)‏ • zwraca ile elementów w liście = obiekt • insert (indeks, obiekt)‏ • wstawia obiekt do listy przed miejscem podanym w parametrze 'indeks' • >>>miesiace=['luty', 'marzec'] • >>>miesiace.insert(0,' maj')‏ • >>>miesiace • ['maj','luty','marzec']

  7. remove (obiekt)‏ Znajduje pierwsze wystąpienie obiektu w liście i usuwa je. >>>miesiace.remove('maj')‏ >>>miesiace ['luty','marzec'] • pop(indeks)‏ • usuwa element listy o zadanym indeksie • i zwraca go. Jeśli nie podano argumentu usuwa ostatni element z listy. • >>> miesiace.pop[0] • >>> 'luty'

  8. reverse()‏ Odwraca kolejność elementów w liście. >>>obiad=['schabowy','udko','mielony'] >>>obiad.reverse()‏ >>>obiad ['mielony', 'udko','schabowy'] • sort(funkcja)‏ • sortuje elementy z listy, można podać własną funkcję sortującą.

  9. 3) Słowniki • tworzenie,dodawanie i zmiana wartości klucza • >>>obiady = {'kotlety':('schabowy,'mielony'), 'ryby':'dorsz'} • >>>obiady['kotlety'] • ('schabowy,'mielony')‏ • >>>obiady['ryby']=('mintaj','pstrąg')‏ • Wyjątki i bezpieczne użytkowanie • jeśli chcemy użyć klucza, który nie istnieje w słowniku wyskoczy nam wyjątek KeyError. Dla bezpieczeństwa używajmy funkcji get(klucz) i setdefault(klucz)‏

  10. >>>obiady.get('pierogi', 'Nie podajemy pierogów')‏ 'Nie podajemy pierogów setdefault() dodaje parę klucz-wartość do słownika jeśli podany klucz jeszcze nie istnieje, w przeciwnym wypadku zwraca obecną wartość dla klucza. >>>obiady.setdefault('ryby','płotka')‏ >>>('mintaj, 'pstrag') # zwraca obecną wartość >>>obiady.setdefault('pierogi',('ruskie','z miesem'))‏ ('ruskie,'z miesem')‏ • has_key(key) – sprawdza czy w słowniku istnieje podany klucz • >>>obiady.has_key('ryby')‏ • 1 • >>>del obiady['ryby'] #usuwa ze słownika • >>obiady.has_key('ryby')‏ • 0

  11. Update (słownik) – dodaje elementy z jednego słownika do drugiego • >>>dane={'login':'haslo'} • >>>obiady.update(dane)‏ • >>>obiady • {'ryby':('mintaj','pstrag'), 'login':'haslo','kotlety':('schabowy','mielony')} • len(slownik) – zwraca liczbe elementów w słowniku • keys() - wyświetla listę kluczy ze słownika • values() - wyświetla listę wartości ze słownika • items() - wyświetla klucze i wartości w postaci krotek • clear() - kasuje wszystko

  12. popitem() - usuwa losowo wybrany klucz i jego wartości • Usuwanie calego słownika metodą popitem(): • >>>d={'one':1, 'two':2, 'three':3} • >>>try • while 1: • print d.popitem()‏ • except KeyError: • print ''pusto'' • ('one',1)‏ • ('two',2)‏ • ('three',3)‏ • pusto

  13. TABLICE W odróżnieniu od list i krotek tablice muszą zawierać elementy tego samego typu: >>> import array >>> z = array.array ('B') # tworzy tablice bajtów >>> z.append(5)‏ >>>z[0] 5 >>> q=array.array('i', [5,10]) # i – unsigned int >>> q array('i',[5, 10])‏ Kody typów dla tablic – Python Bible str.69

  14. KONWERSJE MIĘDZY TYPAMI • tolist() - konwertuje tablicę do listy • >>> q.tolist()‏ • [5,10] • fromlist(lista) – dodaje elementy z listy na koniec tablicy • >>> q.fromlist([2,4])‏ • >>> q • array ('i', [5,10,2,4])‏ • jeśli któryś z obiektów w liście jest innego typu niż typ tablicy to fromlist() nie dodaje żadnego elementu.

  15. tostring() - konwertuje tablicę do typu napisowego • >>> z=array.array('i',[1])‏ • >>> z.tostring()‏ • '\x01\x00\x00\x00' • fromstring(string) – do typu tablicowego • >>> z.fromstring('\x01\x00\x00\x00')‏ • >>> z • array('i', [1,1])‏

  16. tofile(file) - zapisuje tablice do pliku • >>> z=array.array('h', [10,1000,500])‏ • >>> f=open('myarray', 'wb')‏ • >>>z.tofile(f)‏ • >>f.close()‏ • fromfile(file,liczba) - czyta określoną liczbę elementów z pliku i dodaje do tablicy. • >>>z.fromfile(open('myarray','rb'),3)‏ • >>>z • array('h', [10, 1000, 500, 10, 1000, 500])‏

  17. Funkcje omówione wcześniej dla list: len,append,extend,count,index,insert,pop,remove, reverse działają również dla tablic.

  18. WEJŚCIE I WYJŚCIE >>> print ''Witam'' Witam def drukuj()‏ print ''co tam'', # dzięki ',' nie przejdzie do nast.linii print ''słychać?” >>drukuj()‏ co tam słychać?

  19. def drukuj()‏ print ''co tam'', sys.std.out.softspace=0 # brak spacji między # wydrukami print ''słychać?” >>drukuj()‏ co tamsłychać?

  20. raw_input() - pobiera linię ze standardowego wejścia i zwraca ja jako napis. • >>> s= raw_input()‏ • Python • >>>print s • Python • >>> s= raw_input('Podaj swoje imię:')‏ • Podaj swoje imię: Tomek • >>> s • Tomek

  21. input() - tak jak raw_input tylko dodatkowo zakłada, że wejście jest poprawnym wyrażeniem Pythona i zwraca oszacowaną wartość. • >>>input ('Podaj jakieś wyrażenie pythona:')‏ • Podaj jakieś wyrażenie pythona: [x*x for x in range(2,5)] • [4,9,16]

  22. OPERACJE NA PLIKACH • Otwieranie • >>> f= open('foo.txt', 'wt',1) # otwiera plik do zapisu • >>> f • <open file 'foo.txt', mode 'wt' at 010C0488> • Tryby otwarcia pliku: • r – do odczytu • w- do zapisu, tworzy nowy plik o podanej nazwie, jeśli taki istniał to niszczy go i tworzy nowy • a – dopisuje na koniec pliku, tworzy nowy jeśli nie istnieje • r+ - do odczytu i zapisu – plik musi istnieć • w+ - tworzy nowy plik do zapisu i odczytu, niszczy stary • a+ - dopisywanie i czytanie, tworzy plik jeśli • nie istnieje

  23. Możemy również dodać: t – tryb tekstowy b – tryb binarny Jeśli plik nie istnieje lub nie masz do niego praw dostępu funkcja open() wyrzuci wyjątek IOError. >>>f= open('foo.txt', 'wt')‏ >>> f.mode() # zwraca tryb otwarcia 'wt' >>> f.closed() # boolean – czy plik zamknięty 0 >>> f.name() # zwraca nazwe pliku 'foo.txt' >>> f.isatty() # czy plik jest przyłączony do terminala 0 >>>f.fileno() # deskryptor pliku 0

  24. tell() - zwraca bieżącą pozycję w pliku • seek(indeks, skad) – zmienia bieżącą pozycję w pliku na pozycję podaną w zmiennej 'indeks'. Argument 'skad' określa jak funkcja ma interpretować pierwszy parametr: • 0- szukaj od początku pliku (domyślnie)‏ • 1- szukaj od bieżącej pozycji w pliku • 2- szukaj od końca

  25. >>>f=open('plik.txt',w+)‏ • >>>f.write('brain')‏ • >>>f.seek(-4,2)‏ • >>>f.read()‏ • 'rain' • >>>f.seek(2)‏ • >>>f.seek(1,1)‏ • >>>f.read()‏ • 'in' • write(str) – zapisuje stringa do pliku be znaku nowej linii • writelines(lista) - j.w tylko w argumencie przyjmuje listę stringów.

  26. >>>f=open('plik.txt',w+)‏ • >>>f.write('python \n')‏ • >>>lines=['jest','fajny!'] • >>>f.writelines(lines)‏ • >>>f.seek(0)‏ • >>>print f.read()‏ • python • jest fajny! • truncate([pozycja]) – usuwa napis od podanej zmiennej, jeśli wywołana bez argumentu to usunie od bieżacej pozycji. • >>>f.seek(5)‏ • >>>f.truncate()‏ • >>>f.seek(0)‏ • >>>print f.read()‏ • pytho

  27. read([liczba]) – czyta okresloną liczbę bajtów z pliku. • readline([liczba]) – czyta linię z pliku.

More Related