Краткий справочник по Питону

Работа с файлами
Построчное чтение файла
f = open('input.txt')
for str in f:
        str = str.rstrip('\n')
        print(str)
Чтение строки, на которой записано число
f = open('input.txt')
n = int(f.readline())
print(n)
Чтение строки, на которой записана последовательность чисел
f = open('input.txt')
str = f.readline()
nums = str.split()
print(nums)
Работа со строками
Некоторые полезные строковые функции (стр. 69-71 из Бизли Д. Python. Подробный справочник):
  • s.count(sub [, start [,end]]) – подсчет количества вхождений подстроки sub в строку s без самопересечений
  • s.endswith(str, [, start [, end]]) – проверяет, оканчивается (а функция startswith – начинается) ли строка s подстрокой (подстроками) str.
  • s.find(sub [, start [,end]]) – отыскивает первое вхождение подстроки sub или возвращает -1. Аналогичная функция rfind отыскивает последнее вхождение
  • s.replace(old, new [count]) – замещает подстроку old строкой new
  • s.isalnum(), s.isalpha(), s.isdigit() – проверяют, соответственно, являются ли все символы строки алфавитно-цифровыми, только буквами или только цифрами
  • s.join(t) – объединяет все строки, находящиеся в последовательности t, используя s как строку-разделитель
  • s.lstrip([chrs]) – удаляет все левые (функция rstrip – правые) пробельные символы или символы, перечисленные в аргументе chrs
  • s.partition(sep) – разбивает строку на две части по подстроке-разделителю sep по первому ее вхождению (функция rpartition – по последнему). Возвращает кортеж (head, sep, tail) или (s, '', ''), если строка sep отсутствует в s
  • s.split(sep [, maxsplit]) – разбивает строку по подстроке-разделителю sep. Если sep не задан, то разбиение происходит по пробельным символам
  • s.zfill(width) – дополняет строку нулями слева до достижения ею длины width
Работа с последовательностями (строки, списки, кортежи, диапазоны)
Общие операции:
  • x in sTrue, если x входит в s
  • x not in sTrue, если x не входит в s
  • s + t – конкатенация (объединение) s и t
  • s * n – конкатенация n копий s (n – целое число)
  • s[i] – обращение к i-тому по порядку элементу s (начиная с нуля)
  • s[i:j] – подпоследовательность (срез) s с i-го по j-тый элемент (не включая j)
  • s[i:j:k] – подпоследовательность (срез) s с i-го по j-тый элемент (не включая j) с шагом k
  • len(s) – длина s
  • min(s), max(s) – минимальный / максимальный элемент s
  • s.index(x [, i [,j]]) – порядковый номер элемента x в s в диапазоне i <= k < j. Если элемента нет в последовательности, выбрасывается исключение
  • s.count(x) – количество вхождений x в s
Операции только для изменяемых (мутабельных) последовательностей, например, списков:
  • s[i] = x – замена i-того элемента s на x (то же, что и s.insert(i, x))
  • s[i:j] = t – все элементы с i-го по j-тый (не включая) из s заменяются на элементы из итерируемого объекта t
  • del s[i:j] – удаление всех элементов с i-го по j-тый (не включая) (то же, что и s[i:j] = [])
  • s.append(x) – добавление x в конец последовательности s
  • s.clear() – удаление всех элементов из s (то же, что и del s[:])
  • s.copy() – создание копии s (то же, что и s[:])
  • s.pop([i]) – получение i-го элемента, одновременно с его удалением из s. Если i не задана, то удаление происходит с конца последовательности
  • s.remove(x) – удаляет первое вхождение x в s. Если такого элемента нет, то выбрасывается исключение
  • s.reverse() – переворачивает элементы последовательности
Сортировка элементов списка:
  • s.sort()
Множества

Множества используются для хранения неупорядоченных коллекций объектов. Создаются множества с помощью функции set(), которой передаются последовательности элементов. В отличие от кортежей, множества являются неупорядоченными коллекциями и не предусматривают возможность доступа к элементам по числовому индексу. Более того, элементы множества никогда не повторяются.

Основные операции:
  • s = set([3,5,9,10]) создаст множество чисел
  • t = set("Hello") создаст множество уникальных символов из строки "Hello"
  • a = s | t – объединение множеств s и t
  • a = s & t – пересечение множеств s и t
  • a = s - t – разность множеств s и t
  • s.add('x') – добавление элемента x в множество
  • s.update(lst) – добавление всех элементов из списка lst в множество
  • t.remove['H'] – удаление элемента из множества
  • x in sTrue, если x входит в множество s
  • len(s) – размер (мощность) множества s
Словари

Словарь – это ассоциативный массив, содержащий объекты, индексированные ключами. Чтобы создать словарь, последовательность элементов необходимо заключить в фигурные скобки {}, как показано ниже:

stock = {
	"name" : "GOOG",
	"shares" : 100,
	"price" : 490.10
}

Доступ к элементам словаря осуществляется с помощью оператора индексирования по ключу:

name = stock[“name”]
value = stock[“shares”] * stock[“price”]

Добавление или изменение объектов в словаре выполняется следующим способом:

stock[“shares”] = 75
stock[“date”] = “June 7, 2007”

Чаще всего в качестве ключей применяются строки, тем не менее, для этих целей допускается использовать большинство других объектов языка Python, включая числа и кортежи. Определенные объекты, включая списки и словари, не могут использоваться в качестве ключей, потому что их содержимое может изменяться.

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

Создать пустой словарь можно одним из двух способов:

prices = {} # Пустой словарь
prices = dict() # Пустой словарь

Проверку наличия элемента в словаре можно выполнить с помощью оператора in.

Чтобы получить список ключей словаря, словарь можно преобразовать в список: syms = list(prices).

Для удаления элементов словаря используется инструкция del: del prices["MSFT"].