4.2.4字典方法

  • 映射:把唯一键映射到值上。字典存储键、值以及它们之间的关联
  • value无顺序,可以是任何类型;key可以是任何不可变类型(数字/字符串/元组)
  • item : key-value

常用操作

在这里插入图片描述

1.创建和访问

oldContancts=dict(contacts)  #创建
contacts[key]# 访问值
#fromkeys()方法
>>> names=('a','b','c')
>>> age=(1,2,3)
>>> student=dict.fromkeys(names,age)
>>> student
{'a': (1, 2, 3), 'b': (1, 2, 3), 'c': (1, 2, 3)}
  • get():匹配的键不存在时返回默认值,下标必须是字典中的合法键,keyError。
number=contacts.get(key,value)
#如果key不存在,返回value,即number=value
  • keys()函数:返回字典中所有的标签 / values() / items()
>>> student
{'a': (1, 2, 3), 'b': (1, 2, 3), 'c': (1, 2, 3)}
>>> student.keys()
dict_keys(['a', 'b', 'c'])

2.增加和修改

  • 字典属于可变容器,可以在创建之后改变内容。
  • 修改给定键关联的值
contacts[key]=value
  • update方法:合并字典
dict1={key1:value1}
dict2={key2:value2}
dict1.update(dict2)
  • del():删除指定标签的数据项
  • pop() :删除整个键值对,同时返回正在删除的项的值,可以使用它或者保存在一个变量中,如果键不在字典中,抛出keyError
Num=contacts.pop(key)
  • popitem操作:删除并返回任意一个数据项,可用来遍历字典
  • clear操作:清空字典

3.遍历字典

  • 使用for循环遍历字典中独立的
for key in contacts:
	print(key)

for key in contacts.keys():
	print(key)
  • 同时得到键-值:items方法返回二元组
keys=[]
values=[]
for key,item in contacts.items()
	keys.append(key)
	values.append(value)
  • 按顺序迭代键:sorted函数,返回由键组成的顺序列表
for key in sorted(contacts):
	print(key,contacts[key])
  • values方法返回字典值的序列
pNum=[]
for num in contancts.values():
    pNum.append(num)
print(pNum)
>>>[123, 234, 345, 3455]
#使用list函数创建列表
phoneN=list(contancts.values())
print(phoneN)
>>>[123, 234, 345, 3455]

1.clear

>>> x={}
>>> y=x
>>> x['key']='value'
>>> x
{'key': 'value'}
>>> y
{'key': 'value'}
>>> x={} #将空字典赋给x,不影响y
>>> x
{}
>>> y
{'key': 'value'}

使用clear删除原来字典所有的元素

>>> x={'key':'value'}
>>> y=x
>>> y
{'key': 'value'}
>>> x.clear()
>>> y
{}

2.copy

浅复制
替换副本中的值时,原件不受影响。
修改副本中的值(就地修改),原件也将发生变化

深复制
使用模块copy中的函数deepcopy

from copy import deepcopy
d={}
d['name']=['Alice','Bobby','Candice']
c=d.copy()
dc=deepcopy(d)
d['name'].append('David')
print(c)
print(dc)
print(d)

{'name': ['Alice', 'Bobby', 'Candice', 'David']}
{'name': ['Alice', 'Bobby', 'Candice']}
{'name': ['Alice', 'Bobby', 'Candice', 'David']}

3.get

people={
    'Alice':{
        'phone':'2341',
        'addr':'shuangfeng'
        },
    'Bobby':{
        'phone':'3412',
        'addr':'loudi'
        },
    'Candice':{
        'phone':'3124',
        'addr':'xinhua'
        }
    }

labels={
    'phone':'phone number',
    'addr':'address'
    }
name=input('Name:')
request=input('Phone nunmbre(P) or Address(A)?')

if request == 'P':key='phone'
if request == 'A':key='addr'

person=people.get(name,{})
label=labels.get(key,key)
result=person.get(key,'not available')

print("{}'s {} is {}.".format(name,label,result))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值