Введение в Python - [4]

Шрифт
Интервал

>13 | print text + "Nice to code you" # Выведет новую строку

>14 | print text[ -1] * 10 # Выведет 10 восклицательных знаков


В результате вы увидите следующее



Списки в Python:

Списки, пожалуй, самый универсальный составной тип данных в Python. Список состоит из элементов, разделенных запятыми, находящихся между квадратными скобками ( [ ] ). В определенной мере, списки подобны массивам в C. Единственной разницей является то, что элементы одного списка могут иметь разные типы данных.

Получить доступ к элементам, сохраненным в списке можно, точно так же, как и в строках, при помощи оператора нарезки ( [ ] и [:] ) и индексов, начиная с нуля и до конца. Знак плюс ( + ) объединяет два списка, а звездочка ( * ) - оператор повторения для списка. Например:


>1 | my_list =[True, 786, 3.14, 'text', 70.2]

>2 | second_list = [123, 'text']

>3 |

>4 | print my_list # Напечатает весь список

>5 | print my_list[0] # Напечатает первый элемент списка

>6 | print my_list[1:3] # Напечатает элементы списка со второго по третий

>7 | print my_list[2:] # Напечатает элементы списка начиная с третьего

>8 | print second_list * 2 # Напечатает удвоенный список

>9 | print my_list + second_list # Напечатает объединенные списки


В результате вы увидите:


>| [True, 786, 3.14, 'text', 70.2]

>| True

>| [786, 3.14]

>| [3.14, 'text', 70.2]

>| [123, 'text', 123, 'text']

>| [True, 786, 3.14, 'text', 70.2, 123, 'text']


Кортежи в Python:

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

Если у вас нет необходимости изменять элементы списка, то для экономии места в памяти лучше использовать тип данных кортеж.


>1 | my_tuple =(True, 786, 3.14, 'text', 70.2)

>2 | second_tuple = (123, 'text')

>3 |

>4 | print my_tuple # Печатает весь кортеж

>5 | print my_tuple[0] # Печатает первый элемент

>6 | print second_tuple * 2 # Печатает удвоенный кортеж

>7 | print my_tuple + second_tuple # Печатает объединенные кортежи


В результате вы получите:

>| (True, 786, 3.14, 'text', 70.2)

>| True

>| (123, 'text', 123, 'text')

>| (True, 786, 3.14, 'text', 70.2, 123, 'text')


При этом, следующие действия доступны для списков и недоступны для кортежей:


>1 | my_list = ["Rome", 23, ["cat", "dog"], True, 3.14]

>2 | my_tuple = ("Rome", 23, ["cat", "dog"], True, 3.14)

>3 | my_list[0] = "Paris" # Замена значения первого элемента сработает для списка

>4 | my_tuple[0] = "Paris" # Та же операция для кортежа вызовет ошибку


Словари в Python:

Словари в Python это неотсортированная колекция элементов, доступ к которым осуществляется по ключу. То есть, каждому ключу словаря соответствует определенное значение. Ключом может быть любой неизменяемый тип данных (число, строка, кортеж), значением - любой тип данных.

Пары ключ, значение словаря заключаются в фигурные скобки ( { } ). Есть несколько способов создания словарей:


>1 | my_dict = { } # Создаем пустой словарь

>2 | my_dict["country"] = "Mexico" # Присваиваем ключу country значение Mexico

>3 | print my_dict["country"] # Выведет Mexico

>4 |

>5 | # Заполнение словаря при инициализации

>6 | another_dict = {"number":23, 2: True, "my_list":[1, 2, 3]}

>7 | print another_dict.keys() # Напечатает список всех ключей

>8 | print another_dict.values() # Напечатает список всех значений


Данный код выведет следующее:



Обратите внимание, что ключи и значения выводятся не в том порядке, в котором мы их задавали.

Сеты в Python:

Сет в Python это еще один изменяемый, коллекционный тип данных, отличительной чертой которого является то, что он хранит только уникальные значания.

Создать сеты можно следующими способами:

>1 | # Создание пустого сета

>2 | s = set()

>3 | # Создание сета инициализацией

>4 | s = {"hi", "bye"}

Для добавление элемента в сет используется метод add, для удаления - pop или remove. Добавление в сет уже существующего элемента не повлияет на сет. Сеты обладают множеством методов для работы с уникальными элементами, например difference - возвращает элементы сета отсутствующие в другом сете, intersection - наоборот, возвращает елементы сета присутствующие в другом сете.

Преобразование типов данных:

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

Функция

Описание

int(x [,base])

Преобразовывает х в целое число. Например, int(12.4) -> 12

long(x [,base] )

Преобразовывает х в long. Например, long(20) -> 20L

float(x)

Преобразовывает х в число с плавающей точкой. Например float(10) -> 10.0

complex(real [,imag])

Создает комплексное число. Например complex(20) -> (20+0j)

str(x)

Преобразовывает х в строку. Например str(10) -> '10'

tuple(s)

Преобразовывает s в кортеж. Например tuple("hello") -> ( "h","e","l","l","o" )

list(s)

Преобразовывает s в список. Например list("Python") -> ["P","y","t","h","o","n" ]

dict(d)

Создает словарь из d. Например dict( [ (1,2), (3,4) ] ) -> { 1:2, 3:4 }


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

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