Python Itertools --- ланцюжок, isSlice та izip Пояснено прикладами

Itertools - це модуль функцій Python, які повертають генератори, які є об'єктами, які функціонують лише при ітерації.

ланцюжок ()

chain()Функція приймає кілька ітераторів в якості аргументів. Він проходить через кожен елемент кожного переданого ітератора, а потім повертає один ітератор із вмістом усіх переданих ітераторів.

import itertools list(itertools.chain([1, 2], [3, 4])) # Output # [1, 2, 3, 4]

islice ()

У islice()функції повертає конкретні елементи з пропущених ітератора.

Він приймає ті самі аргументи, що і slice()оператор для списків: start, stop і step. Пуск і зупинка не є обов’язковими.

import itertools list(itertools.islice(count(), 5)) # Output # [0, 1, 2, 3, 4]

izip ()

izip() повертає ітератор, який поєднує елементи переданих ітераторів у кортежі.

Він працює подібно до zip(), але повертає ітератор замість списку.

import itertools list(izip([1, 2, 3], ['a', 'b', 'c'])) # Output # [(1, 'a'),(2, 'b'),(3, 'c')]

Більше інформації:

  • Дізнайтеся аналіз даних за допомогою Python - безкоштовний 4-годинний курс
  • Багатопотоковий Python: ковзання через вузьке місце вводу-виводу?