Python入门笔记-03-字典

目录

创建和使用字典

1、dict

2、 基本的字典操作

3、将字符串格式设置功能用于字典-(format_map)

4、字典方法

4.1、clear

4.2、copy

4.2.1、deepcopy

4.3、fromkeys

4.4、get

4.5、items

4.6、keys

4.7、pop

4.8、popitem

4.9、setdefault

4.10、update

4.11、values


创建和使用字典

定义:字典由键及其相应的值组成,这种键-值对称为项(item)。

每个键与其值之间都用冒号(:)分隔,项之间用逗号分隔,而整个字典放在花括号内。

1、dict

定义:使用函数dict[插图]从其他映射(如其他字典)或键-值对序列创建字典。

可使用关键字实参来调用这个函数

2、 基本的字典操作

len(d)返回字典d包含的项(键-值对)数。

d[k]返回与键k相关联的值。

d[k] = v将值v关联到键k。

del d[k]删除键为k的项。

k in d检查字典d是否包含键为k的项。

键的类型:字典中的键可以是整数,但并非必须是整数。字典中的键可以是任何不可变的类型,如浮点数(实数)、字符串或元组

字典实例:

people={

    'Alice':{

        'phone':'2341',

        'addr':'Foo drive 23'

        },

     'Beth':{

        'phone':'9102',

        'addr':'Bar street 42'

        },

     'Cecil':{

        'phone':'3158',

        'addr':'Baz avenue 90'

        },

    }





labels={

    'phone':'phone number',

    'addr':'address'

    }



name=input('Name:')



request=input('Phone number (p) or address (a)?')



if request =='p':key='phone'

if request =='a':key='addr'



if name in people:print("{}'s {} is {}.".format(name,

                        labels[key],people[name][key]))

3、将字符串格式设置功能用于字典-(format_map)

定义:可在字典中包含各种信息,这样只需在格式字符串中提取所需的信息即可。为此,必须使用format_map来指出你将通过一个映射来提供所需的信息。

4、字典方法

4.1、clear

定义:方法clear删除所有的字典项,这种操作是就地执行的(就像list.sort一样),因此什么都不返回(或者说返回None)。

注:两个字典共用时,要删除原来的字典的所有元素,必须使用clear。

1.无clear,对另外的字典无影响

2.clear,删除原来的字典所有元素

4.2、copy

定义:方法copy返回一个新字典,其包含的键-值对与原来的字典相同(这个方法执行的是浅复制,因为本身是原件(修改时为值),而非副本)。

(tip:当替换副本中的值时,原件不受影响。然而,如果修改副本中的值(就地修改而不是替换),原件也将发生变化,因为原件指向的也是被修改的值

为避免这种问题有:执行深复制,即同时复制值及其包含的所有值

4.2.1、deepcopy

4.3、fromkeys

定义:方法fromkeys创建一个新字典,其中包含指定的键,且每个键对应的都是None

也可直接对dict调用方法fromkeys。(dict是所有字典所属的类型

默认值None,可提供特定的值。

4.4、get

定义:方法get为访问字典项提供了宽松的环境。通常,如果你试图访问字典中没有的项,将引发错误。

>>> print(d.get('name'))

None

Tip:可指定“默认”值,这样将返回你指定的值而不是None。

>>> d.get('name', 'N/A')      
'N/A'

4.5、items

定义:方法items返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式。字典项在列表中的排列顺序不确定。

>>> d = {'title': 'Python Web Site', 'url': 'http://www.python.org', 'spam': 0}        
>>> d.items()       
dict_items([('url', 'http://www.python.org'), ('spam', 0), ('title', 'Python Web Site')])

Tip:返回值属于一种名为字典视图的特殊类型。

视图的一个优点是不复制,它们始终是底层字典的反映.

>>>d['spam']=1
>>>d.items()
dict_items([('url', 'http://www.python.org'), ('spam', 1), ('title', 'Python Web Site')])

4.6、keys

定义:方法keys返回一个字典视图,其中包含指定字典中的键。

>>>d.keys()
dict_keys(['title','url','spam'])

4.7、pop

定义:方法pop可用于获取与指定键相关联的值,并将该键-值对从字典中删除。

>>> d = {'x': 1, 'y': 2}
        
>>> d.pop('x')        
1       
>>> d        
{'y': 2}

4.8、popitem

定义:方法popitem类似于list.pop,但list.pop弹出列表中的最后一个元素,而popitem随机地弹出一个字典项,因为字典项的顺序是不确定的,没有“最后一个元素”的概念。

>>> d = {'url': 'http://www.python.org', 'spam': 0, 'title': 'Python Web Site'}    
>>> d.popitem()      
('url', 'http://www.python.org')       
>>> d       
{'spam': 0, 'title': 'Python Web Site'}

Tip:虽然popitem类似于列表方法pop,但字典没有与append(它在列表末尾添加一个元素)对应的方法。这是因为字典是无序的,类似的方法毫无意义。

4.9、setdefault

定义:方法setdefault有点像get,setdefault还在字典不包含指定的键时,在字典中添加指定的键-值对。

>>> d = {}     
>>> d.setdefault('name', 'N/A')        
'N/A'        
>>> d        
{'name': 'N/A'}       
>>> d['name'] = 'Gumby'        
>>> d.setdefault('name', 'N/A')
        
'Gumby'        
>>> d        
{'name': 'Gumby'}

Tip:指定的键不存在时,setdefault返回指定的值并相应地更新字典。如果指定的键存在,就返回其值,并保持字典不变。与get一样,值是可选的;如果没有指定,默认为None。

4.10、update

定义:方法update使用一个字典中的项来更新另一个字典,将其项添加到当前字典中。如果当前字典包含键相同的项,就替换它。

>>>d={'title':1,'url':2,'spam':3}

>>>x={'title':2}

>>>d.update(x)

d

{'title'2,'url',2,'spam':3}

4.11、values

定义:方法values返回一个由字典中的值组成的字典视图。

>>> d = {}
       
>>> d[1] = 1
       
>>> d[2] = 2
      
>>> d[3] = 3
        
>>> d[4] = 1
       
>>> d.values()
     
dict_values([1, 2, 3, 1])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值