blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Użycie `zip()` w Pythonie

python example

Pobieranie po trzy elementy z jednej listy

Python 2

a = [1,2,3,4,5,6,7,8,9]

print('\n--- A ---')

# za pomocą listy - nie dziala
print('wynik:', list(zip(a, a, a)) )


print('\n--- B ---')

# za pomocą `iter` (iterowania)
it_1 = iter(a) 
it_2 = iter(a)
it_3 = iter(a)

# za pomocą `iter` (iterowania) - nie dziala
print('wynik:', list(zip(it_1, it_2, it_3)) )


print('\n--- C ---')

# za pomocą `iter` (iterowania) - dziala
it = iter(a)
print('wynik:', list(zip(it, it, it)) )


print('\n--- D ---')

# za pomocą `slice` (wycinania)
print('list:', a[::3])  # cala lista - co trzeci
print('list:', a[1::3]) # bez pierwszego - co trzeci
print('list:', a[2::3]) # bez dwoch pierwszych - co trzeci

print('wynik:', list(zip(a[::3], a[1::3], a[2::3])) )

Python 3 - wymaga użycia list()

a = [1,2,3,4,5,6,7,8,9]

print('\n--- A ---')

# za pomocą listy - nie dziala
print('wynik:', list(zip(a, a, a)) )


print('\n--- B ---')

# za pomocą `iter` (iterowania)
it_1 = iter(a) 
it_2 = iter(a)
it_3 = iter(a)

# za pomocą `iter` (iterowania) - nie dziala
print('wynik:', list(zip(it_1, it_2, it_3)) )


print('\n--- C ---')

# za pomocą `iter` (iterowania) - dziala
it = iter(a)
print('wynik:', list(zip(it, it, it)) )


print('\n--- D ---')

# za pomocą `slice` (wycinania)
print('list:', a[::3])  # cala lista - co trzeci
print('list:', a[1::3]) # bez pierwszego - co trzeci
print('list:', a[2::3]) # bez dwoch pierwszych - co trzeci

print('wynik:', list(zip(a[::3], a[1::3], a[2::3])) )

Wynik

--- A ---
wynik: [(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5), (6, 6, 6), (7, 7, 7), (8, 8, 8), (9, 9, 9)]

--- B ---
wynik: [(1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4), (5, 5, 5), (6, 6, 6), (7, 7, 7), (8, 8, 8), (9, 9, 9)]

--- C ---
wynik: [(1, 2, 3), (4, 5, 6), (7, 8, 9)]

--- D ---
list: [1, 4, 7]
list: [2, 5, 8]
list: [3, 6, 9]
wynik: [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury