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

Как получить список ломтиков с произвольными показателями в Python?

Чтобы извлечь элементы со специфическими показателями из списка Python, используйте список нарезка [Пуск: Stop: Step]. Если вы не можете использовать Slicing, потому что нет шаблона в индексах, которые вы хотите получить доступ, используйте оператор понимания списка [LST [I] для I в индексах], при условии, что ваши индексы хранятся в переменных показателях. https://youtu.be/8kmvqhggghihe люди всегда хотят знать … Как получить список ломтиков с произвольными показателями в Python? Читать далее “

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

Чтобы извлечь элементы с конкретными показателями из списка Python, используйте нарезку Список [Старт: Стоп: Шаг] Отказ Если вы не можете использовать Slicing, потому что нет шаблона в индексах, которые вы хотите получить доступ, используйте оператор понимания списка [LST [I] для I в индексах] При условии, что ваши индексы хранятся в переменной индексы .

Люди всегда хотят знать самую пифитонное решение для данной проблемы. В этом руководстве показано наибольшее количество решений (ов) на Pythonic к следующей проблеме:

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

Пример : У вас есть следующие элементы.

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

Вы хотите создать новый список элементов с Индексы = [0, 2, 6] В исходном списке:

['a', 'c', 'g']

Вы можете получить быстрый обзор большинства методов Pythonic в нашей интерактивной оболочке Python:

Упражнение : Запустите кодовую оболочку. Теперь попробуйте получить доступ к элементу с индексом 7, а также в каждом из данных методов!

Метод 1: Понимание списка

Простой, читаемый и эффективный способ – использовать Понимание списка Это компактный способ создания Списки Отказ Простая формула – [Выражение + контекст] Отказ

  • Выражение : Что делать с элементом каждого списка?
  • Контекст : Какие элементы для выбора? Контекст состоит из произвольного количества для и Если заявления.

Вот код, который создает новый список, который содержит элементы по конкретным показателям (E.G., 0, 2 и 6) в исходном списке:

lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
indices = [0, 2, 6]
out = [lst[i] for i in indices]
print(out)
# ['a', 'c', 'g']

В большинстве случаев это будет лучшее решение, потому что вам не нужна библиотека, и это все еще короткое и читаемое. Однако, если вам нужно сделать это несколько раз, может быть лучше импортировать Numpy Library:

Метод 2: Numpy Array Индексирование

Библиотека Python для численных вычислений, Numpy, является одним из самых мощных инструментов в вашем панели инструментов – особенно если вы работаете в качестве ученого данных. Вот как вы можете использовать Numpy для доступа к произвольным показателям, учитывая последовательность конкретных показателей:

import numpy as np
lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
a = np.array(lst)
indices = [0, 2, 6]

out = a[indices]

Вывод:

print(out)
# ['a' 'c' 'g']

Вы видите, что Numpy Infermenting намного сильнее, чем Индексирование Python – позволяет использовать произвольные последовательности в качестве показателей. Особенно, если вам нужно сделать несколько этих численных операций, вы можете импортировать Numpy Library один раз и многое значение читабельность и кратко Отказ

Связанные ресурсы:

  • Нырять в Numpy в нашем подробном руководстве блога.
  • Станьте мастером науки о данных, прочитав нашу книгу «Coffe Break Numpy».

Метод 3: itemgetter

Следующий метод иногда можно увидеть – используя itemgetter Функция из Оператор модуль:

from operator import itemgetter
lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
indices = [0, 2, 6]
out = list(itemgetter(*indices)(lst))
print(out)
# ['a', 'c', 'g']

Код выполняет следующие шаги:

  • Позвоните в itemgetter () функция и передайте аргументы 0, 2 и 6. Мы используем оператор Asterisk * распаковать значения из Индексы Переменная в itemgetter () функция. Узнайте больше о Asterisk Operator в нашей подробной статье блога.
  • Это возвращает новый объект функции itemgetter.
  • Вызовите новый объект функции itemgetter, передав исходный список lst Отказ
  • Новая функция itemgetter теперь получит кортеж элементов на позициях 0, 2 и 6 в исходном списке lst.
  • Преобразуйте кортеж в список, используя Список (... ) Встроенная функция Python.

Метод 4: Ручные индексы

Просто для понимания, я также хочу указать «наивный» способ доступа к нескольким элементам в исходном списке и поместить их в новый список:

lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
out = [lst[0], lst[2], lst[6]]
print(out)
# ['a', 'c', 'g']

Это совершенно действительный и эффективный подход, если у вас есть только несколько элементов для доступа. Для более чем, скажем, пять показателей, он быстро становится непристойным.

Метод 5: простая петля

Вот еще один подход, который часто используется кодерами, которые приходят с другими языками программирования, такие как Java или C ++: используя простые петли.

lst = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
indices = [0, 2, 6]
out = []
for i in indices:
    out.append(lst[i])
print(out)
# ['a', 'c', 'g']

В то время как в этом нет ничего плохого, это выглядит как-то «жестокий» в современный кодер. Если бы вы использовали этот метод, это было бы как кричать в мир, который вы не очень изощренный кодер Python. 😉.

Ничего плохого в этом – не поймите меня не так! Но если вы хотите увеличить свой уровень сложности в Python, присоединяйтесь к моей бесплатной академии электронной почты со многими курсами электронной почты Python, которые будут освоить свои навыки! Я уже сказал, что это бесплатно?

Присоединяйтесь к академии электронной почты Python!

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

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

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

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

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

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

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

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

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

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

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