Домой

Последняя активность

  

Паралельный обход zip в Python

PyDeKolt avatar PyDeKolt (0) [#] (27.05.2013 / 15:48)
Если у вас есть несколько итерируемых объектов и вам нужно выполнить над ними действия, то вам подойдет функция zip.

  1. L1 = [1,2,3,4,5]
  2. L2 = [5,4,3,2,1]
  3. print zip(L1, L2)
  4. # [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)]
  5. for (x,y) in zip(L1,L2):
  6. print x, '<', y, x < y
  7. """
  8. 1 < 5 True
  9. 2 < 4 True
  10. 3 < 3 False
  11. 4 < 2 False
  12. 5 < 1 False
  13. """


В отличие от функции map, zip не дополняет список значением None, если итерируемые объекты имеют разную длину. Она обрезает их под минимальную длину итерируемых объектов.

  1. L1 = [1,2,3,4,5]
  2. L2 = [5,4,3,2,1,0]
  3. print map(None, L1, L2)
  4. # [(1, 5), (2, 4), (3, 3), (4, 2), (5, 1), (None, 0)]


Функция zip умеет создавать словарь на основе двух списков, первый из которых - ключи, а второй - значения.

  1. keys = ['a', 'b', 'c']
  2. values = [1, 2, 3]
  3. print dict(zip(keys, values))
  4. # {'a': 1, 'c': 3, 'b': 2}

* Учебник по Python
  Всего: 1

Зарегистрируйтесь и сможете комментировать все темы. Кнопочка вверху
Фильтр по автору
Скачать тему

В Форум

Новые вверху
waplog Рейтинг@Mail.ru
Statok.nettop-sid.ru
Яндекс.Метрика