Untitled
unknown
plain_text
2 years ago
3.2 kB
13
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...