【《流畅的python》3.2-3.3节学习笔记】

前言

本文为《流畅的python》的3.2-3.3节的学习笔记。

字典推导


DIAL_CODES = [
    (86, 'China'),
    (91, 'India'),
    (1, 'United States'),
    (62, 'Indonesia'),
    (55, 'Brazil'),
    (92, 'Pakistan'),
    (880, 'Bangladesh'),
    (234, 'Nigeria'),
    (7, 'Russia'),
    (81, 'Japan'),
]

country_code = {
   
   country: code
                for code, country in DIAL_CODES}
print(country_code)
>>>
{
   
   'China': 86, 'India': 91, 'United States': 1, 'Indonesia': 62, 'Brazil': 55, 'Pakistan': 92, 'Bangladesh': 880, 'Nigeria': 234, 'Russia': 7, 'Japan': 81}

说明:字典推导和列表推导,生成器推导写法类似,使用{}包含key和value
本例中,DIAL_CODES为列表,用for循环得到每个元素,其类型为元组,用元组拆包的方法得到区域码和国家名。
在字典推导时,以国家名为key,区域码为value。


country_code1 = {
   
   code: country.upper()
                 for country, code in country_code.items()
                    if code < 66}
print(country_code1)
>>>
{
   
   1: 'UNITED STATES', 62: 'INDONESIA', 55: 'BRAZIL', 7: 'RUSSIA'}

说明:以上例生成的字典为base进行拆包,并过滤区域码小于66的地区,推导新字典。

dict.setdefault


import sys
import re

WORD_RE = re.compile(r'\w+')

def get():
    index = {
   
   }
    with 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值