Полезные советы по Python. Часть 1 | OTUS

Полезные советы по Python. Часть 1

Python_Deep_3.02-5020-a823a9.png

Собрали несколько полезных советов по Python, которые могут вам пригодиться. Ниже вы увидите примеры кода для решения некоторых часто возникающих задач.

1. Обмен значениями:

"""pythonic way of value swapping"""
a, b = 5, 10

print(a, b)

a, b = b, a

print(a, b)

2. Создание единой строки из всех элементов в списке:

a = ["Python", "is", "awesome"]
print( ".join(a))

3. Поиск наиболее часто встречающихся значений в списке:

""" most frequent element in a list """
a = [1, 2, 3, 1, 2, 3, 2, 2, 4, 5, l]
print(max(set(a),key = a.count))
""" using Counter from collections """

from collections import Counter

cnt = Counter(a)
print(cnt.most_common(3))

4. Проверка, являются ли два слова анаграммами:

from collections import Counter

Counter(str1) == Counter(str2)

5. Разворачиваем строку:

"""reversing string with special case of slice step param"""
a = 'abcdefghijklmnopqrstuvwxyz'
print(a[::-1])

"""iterating over string contents in reverse efficiently."""
for char in reversed(a):
print(char)

"""reversing an integer through type conversion and slicing."""
num = 123456789
print(int(str(num)[::-1]))

6. Разворачиваем список:

"""reversing list with special case of slice step param""" 
a = [5, 4, 3, 2, 1]
print(a[::-1])

"""iterating over list contents in reverse efficiently."""
for ele in reversed(a):
  print(ele)

7. Следующий код поможет транспонировать 2d-массив:

"""transpose 2d array [[a,b], [c,d], [e,f]] -> [[a,c,e], [b,d,f]]"""

original = [['a', 'b'], ['c', 'd'], ['e', 'f']]
transposed = zip(*original)
print( list( transposed))

8. А теперь цепное сравнение:

  """unchained comparison with all kind of operators"""
  b = 6
  b = 6
  print(4 < b < 7)
  print(1 == b < 20)

9. И условный вызов функции:

"""calling different functions with same arguments based on condition"""
def product(a, b):
  return a * b

def add(a, b):
  return a + b

b = True
print((product if b else add)(5, 7))

10. Ну и, конечно же, копирование списка:

"""a fast way to make a shallow copy of a list"""

b = a
b[0] = 10
""" both a and b will be[10,2, 3, 4, 5] """

b = a[:]
b[0] = 10
""" only b will change to[10,2, 3, 4, 5] """


"""copy list by typecasting method"""

a = [1, 2, 3, 4, 5]
print(list(a))


"""using the list.copy() method (python3 only)"""

a = [1, 2, 3, 4, 5]

print(a.copy())


"""copy nested lists using copy.deepcopy"""

from copy import deepcopy

1 = [[1, 2], [3, 4]]

12 = deepcopy(l)
print(12)

Коллеги, это первая из наших подборок. Второй блок полезных советов будет в следующей заметке, так что не пропустите! И, да, не забывайте задавать свои вопросы в комментариях!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто