Я написал пост о трюках на C и хотел написать о гораздо большем количестве трюков, которые я знаю, поскольку большинство из них написаны на Python и JS, хотя я писал код на C намного больше, но в любом случае они здесь, я начну с тривиальных вещей, касающихся базового синтаксиса Python, но есть некоторые вещи, неизвестные новичкам, которые я отметил звездочкой ⭐️:
Простой способ доступа к подмассивам списка
Изменение одного также приводит к изменению другого, поскольку оба имеют одинаковое распределение памяти.
3 способа:
Я начну с некоторых основных принципов работы со списками, но они быстро станут менее тривиальными.
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 раз (потому что меня не волнует значение переменной итератора на каждой итерации)
Если у нас есть пары = [("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, когда впервые их изучил. Я напишу этот пост на основе этого репозитория, как только у меня будет время...
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3