bioinf4


Podstawy bioinformatyki
Podstawowe typy danych
Listy oraz krotki
Joanna Bednarska, Dawid Grabarek
Zakład Chemii Fizycznej i Kwantowej
Katedra Inżynierii i Modelowania Materiałów Zaawansowanych
joanna.bednarska@pwr.edu.pl
dawid.grabarek@pwr.edu.pl
8 listopada 2015
1 / 13
Plan wykładu
1
Typy danych
Krotki
Listy
2
Notacja zakresów
2 / 13
Krotka
Krotka - standardowy typ, służący do przechowywania sekwencji danych.
Jest to typ tuple.
Przykład
>>> liczby=(2, 3, 4, 5)
>>> zakupy=( chleb ,  mleko ,  maslo ,  piwo )
>>> krotka=(30, krotka2) #Krotki mogą być osadzane/
zagnieżdżane jedna w drugiej
>>> print liczby, zakupy, krotka
>>> liczby[3] #Elementy krotki są indeksowane
5
>>> krotka[1]
( chleb ,  mleko ,  maslo ,  piwo )
>>> krotka[1][2]
 maslo
>>> literki=tuple( NAPIS )
>>> print literki
3 / 13
( N ,  A ,  P ,  I ,  S )
Krotka-działania
Przykład
>>> dir() #Przypominamy sobie jakie zmienne utworzyliśmy
>>> liczby + zakupy #Krotki można dodawać
(2, 3, 4, 5,  chleb ,  mleko ,  maslo ,  piwo )
>>> liczby == zakupy #Krotki można porównać
False
>>> liczby[0]=4 #Elementów krotki nie można zmieniać
Traceback (most recent call last):
File "", line 1, in
TypeError:  tuple object does not support item assignment
4 / 13
Lista
Lista- typ podobny to krotki, chociaż bardziej elastyczny. Jest to typ list.
Przykład
>>> lista1=[1, 2, 3, 4, 5]
>>> lista2=range(1, 6) #Używając funkcji wbudowanej można
wygodnie generować sekwencje liczb
całkowitych
>>> lista1 == lista2
True
>>> range(1, 30, 3)
[1, 4, 7, 10, 13, 16, 19, 22, 25, 28]
>>> range(90, 70, -4)
[90, 86, 82, 78, 74]
>>> print range.__doc__ #Skąd wiem jak używać tej funkcji?
>>> [1,2] == [2,1] #Pozycja w liście jest bardzo ważna.
False Sprawdz to dla krotki.
5 / 13
Listy, a inne typy danych
Podobnie do napisów, listy można mnożyć przez liczbę całkowitą i
dodawać do siebie.
Listy wspierają również indeksowanie, zakresy, oraz przeciwnie do krotek i
napisów przypisywanie elementów:
Przykład
>>> lista1[1:3]
>>> lista1[2]=22
>>> print lista1
[1, 2, 22, 4, 5]
Listy i krotki mogą być wzajemnie zagnieżdżane.
6 / 13
Lista- ważne atrybuty
Przykład
>>> dir(list)
>>> liczby=range(10)
>>> liczby.append(2) #Dodaj element na końcu listy
>>> liczby.append(4)
>>> print liczby
7 / 13
Lista- ważne atrybuty
Przykład
>>> liczby.count(5) #Ile razy 5 występuje w liczby?
>>> liczby.index(2) #Na której pozycji najwcześniej
pojawia się 2 w liczby?
>>> [7, 4, 2, 3, 4, 2, 5].index(4)
>>> liczby.pop(4) #Usuń element na pozycji 4
>>> liczby.remove(2) #Usuń element 2 na
pozycji o najmniejszej wartości
>>> liczby.reverse() #Odwróć kolejność elementów w liczby
>>> liczby.sort() #Uszereguj elementy listy liczby
rosnąco (lub w kolejności alfabetycznej)
8 / 13
Napisy i listy- indeksowanie i notacja zakresów
Indeksowanie znaków napisu
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
9 / 13
Napisy i listy- indeksowanie i notacja zakresów
Przykład
>>> napis= To jest bardzo długi napis
>>> napis[5] #Wyświetl 5-ty znak
 s
>>> napis[-5] #Wyświetl 5-ty znak od końca
 n
>>> napis[5:11] #Wyświetl znaki od 5-ego do 11-ego
 st bar
>>> napis[:11]
 To jest bar
>>> napis[5:]
 st bardzo długi napis
>>> napis[5:-5]
 st bardzo długi 
10 / 13
Napisy i listy- indeksowanie i notacja zakresów
Przykład
>>> napis[4] ==  e #Czy 4-ty znak to  e ?
True
>>> napis[2] =  xxx #To jest próba zmiany
oryginalnego napisu.
Ale tego nie można zrobić!
>>> lista=range(10)
>>> lista[2]=3.142 #Listy można zmieniać.
11 / 13
Zadanie domowe
Zad. 1.
Napisz skrypt imie.py, który pobiera od użytkownika imię i nazwisko, np.
Dawid Grabarek, a następnie zwraca następujący tekst:
DAWID GRABAREK
dAWID gRABAREK
Grabarek Dawid
kerabarG diwaD
D--a--w--i--d-- --G--r--a--b--a--r--e--k
Użyj funkcji input() oraz raw input() do pobierania danych. Porównaj jak
prawidłowo wpisać tekst w obu przypadkach.
12 / 13
Zadanie domowe
Aby otrzymać dwa pierwsze napisy z zadania 2-ego, należy użyć dwóch
atrybutów, które mają indeksy 33 i 66.
Użyj funkcji dir() (zauważ, że zwraca ona listę atrybutów) aby je odnalezć,
a następnie użyj atrybutu doc , aby dowiedzieć się jak działają.
13 / 13


Wyszukiwarka