Рубрики
Без рубрики

Как вести петлю через список Python в парах, скользящих окнах и партии?

Метод 1: ITERATION Находящиеся над последовательным (скользящим) Windows. список? # Вход: lst = [«А», «B», «C», «D», «E», «F», «G»] n … Как петлю через список Python в парах, раздвижные окна и партии? Подробнее “

Автор оригинала: Chris.

Метод 1: Итализация над последовательными (раздвижными) окнами

Дано:

  • Список Python лишенство
  • Размер окна n

Проблема формулировки Как петля Через список в Последовательные элемент-окна размера N Так что в каждой итерации вы можете получить доступ к N Следующие элементы в списке?

# INPUT: 
lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
n = 3 # window

# OUTPUT: 
 Window:  ['a', 'b', 'c']
 Window:  ['b', 'c', 'd']
 Window:  ['c', 'd', 'e']
 Window:  ['d', 'e', 'f']
 Window:  ['e', 'f', 'g']

💡 Решение : Итерации по поводу списка Python lst В окнах размера N , Итерация по всем показателям списка Я От 0 до индекса N -место последний список элементов (включая). В корпусе цикла используйте индексы, чтобы получить окна, нарезающие lst [я: i + n] Отказ Slicing – это эффективный память, потому что он не создает копии исходного списка.

Вот полный код:

lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
n = 3

for i in range(len(lst)-n+1):
    batch = lst[i:i+n]
    print('Window: ', batch)

Вывод:

'''
OUTPUT:
Window:  ['a', 'b', 'c']
Window:  ['b', 'c', 'd']
Window:  ['c', 'd', 'e']
Window:  ['d', 'e', 'f']
Window:  ['e', 'f', 'g']
'''

Вариант этого – соблюдать после последовательных окон 2: пары!

Способ 2: TEANEMANCE над списком пар

Проблема разработки: Как повторять список в паре элементов?

Это вариант предыдущей проблемы, в котором размер окна n = 2 Отказ Мы используем тот же подход:

💡 Решение : Итерации по поводу списка Python lst В парах, итерации по всем показателям списка Я От 0 до индекса второго элемента последнего списка (включен). В корпусе цикла используйте индексы, чтобы получить окна, нарезающие lst [I: I + 2] Отказ Slicing – это эффективный память, потому что он не создает копии исходного списка.

Вот полный код:

lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

for i in range(len(lst)-1):
    pair = lst[i:i+2]
    print('Pair: ', pair)

Вывод:

'''
OUTPUT:
Pair:  ['a', 'b']
Pair:  ['b', 'c']
Pair:  ['c', 'd']
Pair:  ['d', 'e']
Pair:  ['e', 'f']
Pair:  ['f', 'g']
'''

Способ 3: Нарезка на не перекрывающихся окна (партии)

Вариант общей проблемы, адресованного методом 1, является повторение по поводу списка в партиях размера N Отказ Однако скользящие окна не могут перекрывать!

Проблема разработки: Как повторить список в партиях размера N В то время как каждая партия должна иметь уникальные элементы (не перекрывающиеся партии)?

💡 Решение : Вы можете сделать это, изменяя Диапазон () Функция, которая определяет переменную петли Я Также включать размер шага n . Вы тогда используете нарезку lst [я: i + n] Для доступа к N Следующие элементы из каждого индекса i . Это приводит к не перекрывающимся окна (партии) ломтиков списка.

lst = ['a', 'b', 'c', 'd', 'e', 'f']
n = 3 # batch size

for i in range(0, len(lst)-n+1, n):
    batch = lst[i:i+n]
    print('Batch: ', batch)

Вот вывод:

'''
OUTPUT:
Batch:  ['a', 'b', 'c']
Batch:  ['d', 'e', 'f']
'''

Фон нарезка

🎓 Фон : Нарезка это концепция, чтобы вырезать подстроку из данной строки. Используйте нотацию нарезки S [Старт: Стоп: Шаг] Для доступа к каждому шаг -ный элемент, начиная с индекса Начните (включая) и заканчивая индекс Стоп (Исключенный). Все три аргумента являются необязательными, поэтому вы можете пропустить их для использования значений по умолчанию ( Start = 0 , Stop = Len (LST) , Шаг = 1 ). Например, выражение S [2: 4] из струны «Привет» выкрой ломтик «Я» и выражение S [: 3: 2] выкрой ломтик 'HL' Отказ

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/how-to-loop-through-a-python-list-in-batches/”