MyTetra Share
Делитесь знаниями!
Генератор словарей
Время создания: 31.08.2017 21:01
Текстовые метки: code
Раздел: Python - Types data - Словари
Запись: xintrea/mytetra_db_mcold/master/base/1504202479ftn5tv2qnf/text.html на raw.githubusercontent.com

x: y for x in range(4) for y in range(4)}

Возвращает:

{0: 3, 1: 3, 2: 3, 3: 3}

Нужно получить:

{0: 0, 1: 1, 2: 2, 3: 3}

Знаю, что можно было просто сделать так:

{x: x for x in range(4)}

Но вот, если я хочу сделать вывод

{0: 15, 1: 16, 2: 17, 3: 18}

то так не получится:

{x: y for x in range(4) for y in range(15, 19) }


Подобно генераторам списков, генераторы множеств и словарей способны выполнять итерации по итераторам любых типов – спискам, строкам, файлам,диапазонам целых чисел и любым другим объектам, поддерживающим протокол итераций: >>> {x + y for x in ‘ab’ for y in ‘cd’} {‘bd’, ‘ac’, ‘ad’, ‘bc’} >>> {x + y: (ord(x), ord(y)) for x in ‘ab’ for y in ‘cd’} {‘bd’: (98, 100), ‘ac’: (97, 99), ‘ad’: (97, 100), ‘bc’: (98, 99)}

>>> {k * 2 for k in [‘spam’, ‘ham’, ‘sausage’] if k[0] == ‘s’}

{‘sausagesausage’, ‘spamspam’}


>>> {k.upper(): k * 2 for k in [‘spam’, ‘ham’, ‘sausage’] if k[0] == ‘s’}

{‘SAUSAGE’: ‘sausagesausage’, ‘SPAM’: ‘spamspam’}

 
MyTetra Share v.0.58
Яндекс индекс цитирования