>>> letter_counts = {letter: word.count(letter) for letter in set(word)}
>>> letter_counts
{'t': 2, 'l': 1, 'e': 2, 'r': 1, 's': 1}
这个例子中字典键的顺序和上个例子不同,原因在于迭代
set(word)
时返回的字母顺序和
迭代字符串
word
时不一样。
类似于列表推导式,字典推导式也可以使用
if
条件测试和多个
for
子句:
{
key
_
expression
:
value
_
expression
for
expression
in
iterable
if
condition
}
>>> vowels = 'aeiou'
>>> word = 'onomatopoeia'
>>> vowel_counts = {letter: word.count(letter) for letter in set(word)
if letter in vowels}
>>> vowel_counts
{'e': 1, 'i': 1, 'o': 4, 'a': 2}
字典推导式的更多示例参见
PEP-274
。
8.2
集合
集合
就像丢掉了值只剩下键的字典。和字典一样,每个键必须是唯一的 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.