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

Python One-Listers – окончательная коллекция

Этот ресурс предназначен для максимальной коллекции Python One-Liners. Если у вас есть идея для публикации одноклассника, которая будет опубликована здесь, пришлите мне сообщение на Chris (AT) Finxter.com. Найти все показатели элемента в списке, скажем, вы хотите сделать так же, как метод list.index (Element), но вернуть все … Python One-Listers – конечная коллекция Подробнее »

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

Этот ресурс предназначен для максимальной коллекции Python одноклассники . Если у вас есть идея для публикации одноклассника, которая будет опубликована здесь, пришлите мне сообщение на Chris (AT) Finxter.com.

Найти все показатели элемента в списке

Скажем, вы хотите сделать то же самое, что и метод list.index (элемент), но верните все показатели элемента в списке, а не только один.

В этом одноклассник вы ищете элемент «Алиса» В списке [1, 2, 3] Таким образом, это даже работает, если элемент не находится в списке (в отличие от метода list.index () ).

lst = [1, 2, 3]
indices = [i for i in range(len(lst)) if lst[i]=='Alice']
index = indices[0] if indices else None
print(index)

Загрузите файл в линейку списка по строке

Скажем, вы хотите загрузить все строки данного файла 'chat.txt' в новый список. Вы можете использовать следующий одноклассник, чтобы сделать это для вас в самый краткий способ.

lst = [line for line in open('chat.txt')]

СПИСОК PYTHON SUM TRESTE

Проблема : Как подвести список кортежей, элемент-мудрый?

Пример : Скажи, у тебя есть список [(1, 1), (2, 0), (0, 3)] И вы хотите подвести итоги первого и второго ценностей кортежей для получения «суммированного кортежа» (1 + 2 + 0, 1 + 0 + 3) = (3, 4) Отказ

Решение: Распакуйте кортежи в функцию ZIP для объединения первого и второго ценностей кортежа. Затем суммируйте эти ценности отдельно. Вот код:

# list of tuples
lst = [(1, 1), (2, 0), (0, 3)]

# aggregate first and second tuple values
zipped = list(zip(*lst))
# result: [(1, 2, 0), (1, 0, 3)]

# calculate sum of first and second tuple values
res = (sum(zipped[0]), sum(zipped[1]))

# print result to the shell
print(res)
# result: (3, 4)

Нужен переподготовка zip () Функция и распаковка? Проверьте эти статьи на блог Finxter:

  • Zip refeher
  • Распаковывать ревью

Найти пары совпадений в списке

Предположим, вы хотите использовать список пониманий, чтобы сделать этот код более лаконичным (например, вы хотите найти все возможные пары пользователей в вашей социальной сети):

# BEFORE
users = ["John", "Alice", "Ann", "Zach"]
pairs = []
for x in users:
    for y in users:
        if x != y:
            pairs.append((x,y))
print(pairs)
#[('John', 'Alice'), ('John', 'Ann'), ('John', 'Zach'), ('Alice', 'John'), ('Alice', 'Ann'), ('Alice', 'Zach'), ('Ann', 'John'), ('Ann', 'Alice'), ('Ann', 'Zach'), ('Zach', 'John'), ('Zach', 'Alice'), ('Zach', 'Ann')]

Теперь этот код – беспорядок! Как мы можем исправить это? Просто используйте вложенный список!

# AFTER
pairs = [(x,y) for x in users for y in users if x!=y]
print(pairs)
# [('John', 'Alice'), ('John', 'Ann'), ('John', 'Zach'), ('Alice', 'John'), ('Alice', 'Ann'), ('Alice', 'Zach'), ('Ann', 'John'), ('Ann', 'Alice'), ('Ann', 'Zach'), ('Zach', 'John'), ('Zach', 'Alice'), ('Zach', 'Ann')]

Как видите, мы делаем точно так же, как и с непонятым вложенным списком. Единственное отличие состоит в том, чтобы написать два цикла и оператора IF в одной строке в рамках записи списка [] .

Как рассчитать в среднем столбец списка списков в Python?

Простой одноклассник со пониманием списка в сочетании с функцией ZIP () в распакованном списке для транспонирования списка списков делает работу в Python.

data = [[0, 1, 0],
        [1, 1, 1],
        [0, 0, 0],
        [1, 1, 0]]


# Method 1: Pure Python
res = [sum(x) / len(x) for x in zip(*data)]
print(res)
# [0.5, 0.75, 0.25]

Как фильтровать словарь по ключу

Вот как вы можете отфильтровать словарь по ключу, используя только одну строку кода (без определения функции пользовательского фильтра, как в методе 2):

names = {1: 'Alice',
         2: 'Bob',
         3: 'Carl',
         4: 'Ann',
         5: 'Liz'}

print(dict(filter(lambda x: x[0]%2 == 1, names.items())))
# {1: 'Alice', 3: 'Carl', 5: 'Liz'}

Вы можете распознать тот же фильтр Lambda Function лямбда х: x [0]% 2 Это возвращает Правда Если ключ нечетное целое число. Обратите внимание, что эта функция лямбда занимает только один вход, так как это как Фильтр () Функция работает (требует, чтобы вы проходили функциональный объект, который принимает один аргумент и отображает его логическим значением).

Вы работаете на Iterable names.items () Это дает вам все (ключ, значение) Пары (элемент ITERABLE – это (ключ, значение) кортеж).

После фильтрации вы преобразуете объект фильтра обратно в словарь, используя Dict (...) Функция конструктора.

Другой пример:

print(dict(filter(lambda x: x[0]%2 == 0, names.items())))
# {2: 'Bob', 4: 'Ann'}

Книга Python One-listers

Вы любите Python One-Liners? Я делаю наверняка – я даже написал целую книгу об этом со Сан-Франциско издателем Nostarch. Нажмите, чтобы проверить книгу на новой вкладке:

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

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

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

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

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

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

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

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

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

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

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

Оригинал: “https://blog.finxter.com/python-one-liners-the-ultimate-collection/”