Главная » Статьи » Python

Типы данных. Часть 2

Тип string и тип unicode

В Python строки бывают двух типов: обычные и Unicode-строки.

Фактически строка - это последовательность символов (в случае обычных строк можно сказать "последовательность байтов"). Строки-константы можно задать в программе с помощью строковых литералов. Для литералов наравне используются как апострофы ('), так и обычные двойные кавычки ("). Для многострочных литералов можно использовать утроенные апострофы или утроенные кавычки.

Управляющие последовательности внутри строковых литералов задаются обратной косой чертой (\). Примеры написания строковых литералов:

  1. s1 = "строка1"
  2. s2 = 'строка2\nс переводом строки внутри'
  3. s3 = """строка3 с переводом строки внутри"""
  4. u1 = u'\u043f\u0440\u0438\u0432\u0435\u0442' # привет
  5. u2 = u'Еще пример' # не забудьте про coding!

Для строк имеется еще одна разновидность: необработанные строковые литералы. В этих литералах обратная косая черта и следующие за ней символы не интерпретируются как спецсимволы, а вставляются в строку "как есть":

  1. my_re = r"(\d)=\1"

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

Набор операций над строками включает конкатенацию "+", повтор "*", форматирование "%". Также строки имеют большое количество методов, некоторые из которых приведены ниже. Полный набор методов (и их необязательных аргументов) можно получить в документации по Python.

  1. >>> "A" + "B"
  2. 'AB'
  3. >>> "A"*10 '
  4. AAAAAAAAAA'
  5. >>> "%s %i" % ("abc", 12)
  6. 'abc 12'

Некоторые методы строковых объектов будут рассмотрены в лекции, посвященной обработке текстов.

Тип tuple

Для представления константной последовательности (разнородных) объектов используется тип кортеж. Литерал кортежа обычно записывается в круглых скобках, но можно, если не возникают неоднозначности, писать и без них. Примеры записи кортежей:

  1. p = (1.2, 3.4, 0.9) # точка в трехмерном пространстве
  2. for s in "one", "two", "three": # цикл по значениям кортежа
  3. print s
  4. one_item = (1,)
  5. empty = ()
  6. p1 = 1, 3, 9 # без скобок
  7. p2 = 3, 8, 5, # запятая в конце игнорируется

Использовать синтаксис кортежей можно и в левой части оператора присваивания. В этом случае на основе вычисленных справа значений формируется кортеж и связывается один в один с именами в левой части. Поэтому обмен значениями записывается очень изящно:

  1. a, b = b, a

Тип list

В "чистом" Python нет массивов с произвольным типом элемента. Вместо них используются списки. Их можно задать с помощью литералов, записываемых в квадратных скобках, или посредством списковых включений. Варианты задания списка приведены ниже:

  1. lst1 = [1, 2, 3,]
  2. lst2 = [x**2 for x in range(10) if x % 2 == 1]
  3. lst3 = list("abcde")
Для работы со списками существует несколько методов, дополнительных к тем, что имеют неизменчивые последовательности. Все они связаны с изменением списка.
Категория: Python | Добавил: Шаке (03.03.2012)
Просмотров: 892 | Комментарии: 1 | Теги: Unicode, String, tuple, list
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
/>meta http-equiv=