Python basics Flashcards

1
Q

Сортировка списка

Python

A
for color in sorted(colors):
    print color
for color in sorted(colors, reverse=True):
    print color
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Вернуть список в обратном порядке

Python

A

The reversed() function returns a reversed iterator object.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Сортировка по ключу

Python

A

print sorted(colors, key=len)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

for loop по двум спискам

Python

A
for name, color in zip(names, colors):
    print name, '-->', color

Faster: izip

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Цикл по ключам словаря

Python

A
d = {
    "first": 1,
    "second": 2,
    "third": 3
}
for k in d:
    print(k)

Альтернатива, когда нужно мутировать список например (т.к. d.keys() создаёт копию ключей и хранит их отдельном списке - мы не мутируем словарь напрямую):

for k in d.keys():
    if k.startswith('r'):
		    del d[k]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Можно ли мутировать итеруемый объект по которому проходит итерация? (Удалять элементы, добавлять и т.д.)

Python

A

Нельзя

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Цикл по ключам и значениям словаря

Python

A
for key, value in d.items():
    print key, '-->', value

Более лучшая альтернатива

for key, value in d.iteritems():
    print key, value
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Составить словарь из парных списков

Python

A
names = ['raymond', 'rachel', 'matthew']
colors = ['red', 'green', 'blue']

d = dict(izip(names, colors))
{'matthew': 'blue', 'rachel': 'green', 'raymond': 'red'
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Подсчёт со словарями

Python

A
colors = ['red', 'green', 'red', 'blue', 'green', 'red']

d = {}
for color in colors:
    if color not in d:
		    d[color] = 0
    d[color] += 1
		
{'blue': 1, 'green': 2, 'red': 3}

Альтернатива:

d = {}
for color in colors:
    d[color] = d.get(color, 0) +1

Альтернатива:

d = defaultdict(int)
for color in colors:
    d[color] += 1
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Сумма всех значений в списке

Python

A
a = (1, 2, 3, 4, 5)
x = sum(a)

Syntax
sum(iterable, start)
Parameter Values
* iterable - Required. The sequence to sum
* start - Optional. A value that is added to the return value

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

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

Python

A

max()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

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

Python

A

min()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Возвести значение в степень

Python

A

pow(4, 3) - 4 в степени 3

Syntax
pow(x, y, z)
Parameter Values
* x A number, the base
* y A number, the exponent
* z Optional. A number, the modulus

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Найти абсолютное значение (преобразование отрицательного в положительное)

Python

A

abs()

abs(-7.25) = 7.25

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Округлить значение

Python

A

round()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Получить номера букв английского алфавита

Python

A

The ord() function returns the number representing the unicode code of a specified character.

ord('a') - выдаёт 97

Поэтому проходим по списку, пропускаем букву через ord и вычитаем 96

for word in words:
    ord(word) - 96
17
Q

Группирование через словари

Python

A
d = {}

for name in names:
    key = len(name)
    if key not in d:
        d[key] = []
    d[key].append(name)

Результат:

{7: ['raymond', 'matthew', 'melissa', 'charlie'], 6: ['rachel', 'judith'], 5: ['roger', 'betty']}

Альтернатива:

for name in names:
    key = len(name)
    d.setdefault(key, []).append(name)

Современная альтернатива:

from collections import defaultdict

d = defaultdict(list)
for name in names:
    key = len(name)
    d[key].append(name)
18
Q

Обновление множества переменных

Python

A
def fibonacci(n):
    x, y = 0, 1
		for i in range(n):
		    print x
				x, y = y, x+y
19
Q

Concise expressive one-liners

Python

A

Raymond’s rule:
- One logical line of code equals one sentence in English

Solves two conflicting rules:
1. Don’t put too much on one line
2. Don’t break atoms of thought into subatomic particles

20
Q

Основное в Zen of Python

A
  • Beautiful is better than ugly.
  • Explicit is better than implicit.
  • Simple is better than complex.
  • Complex is better than complicated.
21
Q

Python - с каким типом данных происходит работа быстрее?

A

С tuple работа происходит быстрее, т.к. он неизменяем.