Показаны сообщения с ярлыком Словари. Показать все сообщения
Показаны сообщения с ярлыком Словари. Показать все сообщения

15 апреля 2013 г.

Понимание генераторов множеств и словарей

Сейчас 2 часа  ночи, я ничего не понимаю, что относится к программированию на Python, но пишу этот пост... надеюсь кому то он поможет.


>>> {x * x for x in range(10)}         # Генератор
{0, 1, 4, 81, 64, 9, 16, 49, 25, 36}

>>> set(x * x for x in range(10)) # Генератор и конструктор типа
{0, 1, 4, 81, 64, 9, 16, 49, 25, 36}

>>> {x: x * x for x in range(10)}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

>>> dict((x, x * x) for x in range(10))
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

13 апреля 2013 г.

Краткая сводка по синтаксису генераторов в Python 3.0

В данном посте, мы попытаемся показать все разновидности генераторов



  • В случае с множествами {1, 3, 2} эквивалентна вызову set([1, 3, 2]), а новый синтаксис генераторов множеств {f(x) for x in S if P(x)}, напоминает синтаксис выражений-генераторов set(f(x) for x in S if P(x)), где f(x) – произвольное выражение.

  • В случае со словарями новая конструкция генераторов словарей {key: val for (key, val) in zip(keys, vals)} действует точно так же, как dict(zip(keys, vals)), and {x: f(x) for x in items}, и напоминает выражение-генератор dict((x, f(x)) for x in items).
Ниже показана краткая сводка по всем альтернативным генераторам в версии Python 3.0.  Последние  две конструкции являются новыми  и  недоступны  в версии Python 2.6:
>>> [x * x for x in range(10)]       # Генератор списков:
                                     # конструирует список
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # подобно вызову 
                                     # list(generator expr)
>>> (x * x for x in range(10))       # Выражение-генератор: 
                                     # воспроизводит 
<generator object at 0x009E7328>     # элементы. Скобки часто
                                     # необязательны
>>> {x * x for x in range(10)}       # Генератор множеств,
                                     # новинка в Python 3.0
{0, 1, 4, 81, 64, 9, 16, 49, 25, 36} # {x, y} – литерал множества 
                                     # в Python 3.0
>>> {x: x * x for x in range(10)}    # Генератор словарей,
                                     # новинка в Python 3.0
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

16 сентября 2012 г.

Словари, углубляемся

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

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


9 сентября 2012 г.

Cписки, углубляемся

Списки в действии:

Операция - Интерпретация
L = []  - Пустой список
L = [0, 1, 2, 3]  - Четыре элемента с индексами 0..3
L = [‘abc’, [‘def’, ghi’]]  - Вложенные списки
L = list(‘spam’) - Создание списка из итерируемого объекта.
L = list(range(-4, 4)) - Создание списка из непрерывной последовательности   целых чисел


1 сентября 2012 г.

Словари

>>> D= {'food': 'Spam', 'quantity': 4, 'color': 'pink'} 
Словари- такой тип данных,  в котором обращение к объекту возможно с помощью ключа.
Вообщем чего то мне лень сейчас все подробно это расписывать, думаю главное вам будет, это как инициализируется, создается словарь и как получать из него нужные объекты.
В качестве примера рассмотрим следующий словарь, состоящий из трех элементов (с ключами «food» (продукт питания), «quantity» (количество) и «color» (цвет)):