Untitled
unknown
plain_text
2 years ago
3.2 kB
8
Indexable
from pylab import * # Przykład 1: Indeksowanie klasyczne z `range` (Python 2) a = eye(10) b = zeros(a.shape) for w in range(a.shape[0]): for k in range(a.shape[1]): print(w, k) b[w, k] = a[w, k] imshow(b) # Przykład 2: Odpowiednik funkcji `range()` z Python 2 w Python 3 a = eye(10) b = zeros(a.shape) for w in list(range(a.shape[0])): for k in list(range(a.shape[1])): print(w, k) b[w, k] = a[w, k] imshow(b) # Przykład 3: Indeksowanie klasyczne z `xrange` (tylko Python 2) a = zeros((10, 8)) a[:, (3, 5)] = 1 b = zeros(a.shape) for w in xrange(a.shape[0]): for k in xrange(a.shape[1]): print(w, k) b[w, k] = a[w, k] imshow(b, interpolation='none', cmap='Blues') # Przykład 4: Wykorzystanie comprehension list a = zeros((10, 8)) a[::2, :] = 1 b = zeros(a.shape) for (y, x) in [(y, x) for y in range(a.shape[0]) for x in range(a.shape[1]) if a[y, x] > 0.5]: print(y, x) b[y, x] = a[y, x] imshow(b, interpolation='none', cmap=cm.gray) # Przykład 5: Wykorzystanie iteratora `ndindex` a = zeros((11, 9)) a[5::3, 0:8:3] = 1 b = zeros(a.shape) for y, x in ndindex(a.shape): print(y, x) b[y, x] = a[y, x] imshow(b, interpolation='bilinear', cmap=cm.hot) # Przykład 6: Wykorzystanie iteratora `ndenumerate` a = zeros((11, 9)) a[::2, ::2] = 1 b = zeros(a.shape) for (y, x), i in ndenumerate(a): print(y, x, i) b[y, x] = a[y, x] imshow(b, interpolation='none', cmap=cm.autumn) # Przykład 7: Zwraca iterator z krotki i wypisuje każdą wartość mytuple = ("apple", "banana", "cherry") myit = iter(mytuple) print(next(myit)) print(next(myit)) print(next(myit) # Przykład 8: Tworzenie iteratora class MyNumbers: def __iter__(self): self.a = 1 return self def __next__(self): x = self.a self.a += 2 return x myclass = MyNumbers() myiter = iter(myclass) print(next(myiter) # Przykład 9: Tworzenie iteratora z zakończeniem po 20 iteracjach class MyNumbers: def __iter__(self): self.a = 1 return self def __next__(self): if self.a <= 20: x = self.a self.a += 2 return x else: raise StopIteration myclass = MyNumbers() myiter = iter(myclass) for x in myiter: print(x) # Przykład 10: Obliczanie ciągu Fibonacciego class Fib: def __init__(self, max): self.max = max def __iter__(self): self.a = 0 self.b = 1 return self def __next__(self): fib = self.a if fib > self.max: raise StopIteration self.a, self.b = self.b, self.a + self.b return fib # Przykład 11: Przykład generatora def reverse(data): for index in range(len(data) - 1, -1, -1): yield data[index] for char in reverse('golf'): print(char) # Przykład 12: Wyrażenie generatorowe unique_characters = {'E', 'D', 'M', 'O', 'N', 'S', 'R', 'Y'} gen = (ord(c) for c in unique_characters) next(gen) next(gen) tuple(ord(c) for c in unique_characters)
Editor is loading...