В глубь языка Python


Обработка списков - часть 2


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

Пример 1.33. Расширенная запись списка в buildConnectionString, шаг за шагом

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"} >>> params.items() [('server', 'mpilgrim'), ('uid', 'sa'), ('database', 'master'), ('pwd', 'secret')] >>> [k for k, v in params.items()]

1

['server', 'uid', 'database', 'pwd'] >>> [v for k, v in params.items()]

2

['mpilgrim', 'sa', 'master', 'secret'] >>> ["%s=%s" % (k, v) for k, v in params.items()]

3

['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']

Обратите внимание, что мы используем две переменные при переборе элементов списка params.items(). Это — еще один пример использования . Первым элементом списка params.items()

является кортеж ('server', 'mpilgrim'), поэтому для первой итерации k получит значение 'server' и v получит значение 'mpilgrim'. В данном случае мы игнорируем v и включаем в результат только k, так что в результате мы получим список, эквивалентный params.keys().

Здесь мы делаем то же самое, но игнорируем k, так что в результате мы получим список, эквивалентный params.values().
Комбинируя эти два примера с простым , мы получаем список строк, содержащих ключ и значение для каждой записи словаря. Результат получается подозрительно похожим на программы, все что осталось сделать — это объединить все элементы списка в одну строку.

Дополнительная литература

  • описывает другой способ преобразования элементов списка — .
  • описывает, как использовать .




Начало  Назад  Вперед