«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Примечания/хитрости/уроки/нюансы Python

Примечания/хитрости/уроки/нюансы Python

Опубликовано 1 ноября 2024 г.
Просматривать:907

Python notes/tricks/lessons/nuances

Я написал пост о трюках на C и хотел написать о гораздо большем количестве трюков, которые я знаю, поскольку большинство из них написаны на Python и JS, хотя я писал код на C намного больше, но в любом случае они здесь, я начну с тривиальных вещей, касающихся базового синтаксиса Python, но есть некоторые вещи, неизвестные новичкам, которые я отметил звездочкой ⭐️:

1. Списки

  • Упорядоченная структура данных элементов набора
  • Может иметь несколько типов
  • aa = ["apple", 'd', 3, 9.3]

Инициализация:

  1. а = [1, 2]
  2. a = список()
  3. a = список([2, 3])
  4. [0]*5
  5. concat_list = список1 список2

Доступ к элементам ⭐️

  • 0 ... n-1 и -n ... -1

Функции

  • лен(список1)
  • a.append(значение)
  • a.insert(index, value): вставляет значение по индексу и сдвигает все вправо
  • a.pop(): возвращает конечное значение и удаляет его
  • a.remove(value): если значение отсутствует, вы получите ValueError
  • a.clear()
  • a.reverse(): реверс на месте
  • a.sort(): изменяет исходный
  • b = sorted(a): не изменяет исходный

Нарезка ⭐️

Простой способ доступа к подмассивам списка

  • срезыList = a[1:5]: начать с индекса 1 и остановить на индексе 5, индекс 5 исключен
  • срезСписок = a[:3]: от 0 ... 2
  • срезСписок = a[1:3]: от 1 до 2
  • SlicedList = a[:]: дублировать весь список
  • срезыList = myList[::2]: индекс шага, каждый второй элемент, начиная с первого, в основном i=0;i
  • срезыList = myList[::-1]: хороший способ перевернуть список

Копирование списка

1. Мелкая копия

  • а = [1, 2, 3]
  • б = а

Изменение одного также приводит к изменению другого, поскольку оба имеют одинаковое распределение памяти.

2. Глубокий текст ⭐️

3 способа:

  1. b = a.copy()
  2. b = список(a)
  3. б = а[:]

Понимание списка

Я начну с некоторых основных принципов работы со списками, но они быстро станут менее тривиальными.

  • значения = [x 1 для x в диапазоне (10)] -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

- значения = [x для x в диапазоне (51), если x % 2 == 0]

values = [word for word in values if len(word) > 1 and word[0] == 'a' and word[-1] == 'y']
# OR, a nicer way is ⭐️
values = [
    string
    for string in values
    if len(string) > 1
    if string[0] == 'a'
    if string[-1] == 'y'
]

Понимание вложенных списков ⭐️

Сведение списка списков или двумерной матрицы
Понимание вложенных списков: выравнивание матрицы (списка списков) ⭐️

Пример: матрица = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

values = [
    number for row in matrix for number in row
]
# first for loop then the next for loop is inside the first and so on
  • Другие варианты понимания списка:
values = [
    "Even" if x % 2 == 0 
    else "Odd" 
    for x in range(10)
]
  • Этот синтаксис ->
    «Даже», если x % 2 == 0, иначе «Нечетный» допустим во многих местах в Python, вы также можете поместить его в переменные, это по сути тернарный оператор, но более подробный

  • ⭐️ Чтобы понять понимание любого списка, всегда смотрите на левую и правую часть выражения, любые вложенные циклы идут слева направо, когда if else находится слева от цикла for, мы проверяем, какое значение хотим ли мы вставить в зависимости от условия if else, тогда как когда цикл for находится справа, мы пытаемся фильтровать из списка

  • Например, чтобы создать список 5x5x5: ⭐️

values = [[[num 1 for num in range(5)] for _ in range(5)] for _ in range(5)]

⭐️ Ищите внешнюю часть цикла for: все, что находится слева от него, будет добавлено в массив значений [], и смысл этого синтаксиса: for _ in range(5) заключается в том, что я хочу делать все, что включено. слева от этого цикла for 5 раз (потому что меня не волнует значение переменной итератора на каждой итерации)

  • Функции в пониманиях:\ значения = [x**2 для x в значениях, если они действительны (x)]

Понимание словаря

Если у нас есть пары = [("a", 1), ("b", 2)]: список пар или кортежей

-> my_dict = {k:v для k, v в парах}: распаковка значений, чтобы это работало, каждая «пара» в парах должна иметь ровно 2 объекта

Установить понимание

Пусть числа = [1, 2, 3, 1, 3, 2, 4, 2, 1, 3]

unique_nums = {x for x in nums}: Python будет знать, что это должен быть набор, потому что у вас нет ключей

Я напишу это, как только у меня появится время, но вы все равно можете ознакомиться с ними здесь: AdvancedPythonConcepts. Это мой репозиторий git, где я документировал концепции Python, когда впервые их изучил. Я напишу этот пост на основе этого репозитория, как только у меня будет время...

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/yashdevs/python-tricks-5b0c?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3