python学习第二周之字典的使用

{6: [1, {'name': 'alex'}, 444], 7: [1, {'name': 'alex'}, 444], 8: [1, {'name': 'alex'}, 444]}
{6: [1, {'name': 'chen'}, 444], 7: [1, {'name': 'chen'}, 444], 8: [1, {'name': 'chen'}, 444]}

1.字典表现为key:value的形式,字典是无序的,通过key定位即可,key尽量不要写中文。

2.现在定义一个字典:

info={
    '1':"Wu",  #1为key
    '2':"la",
    '3':"ya"
}

(1)查询:print(info["1"]),查询结果为 wu

(2)修改与新增:info['4']="武",如果有该key值则修改,没有则增加:

info['1']="武"
print(info)
info['4']="武"  #存在即修改,不存在即增加
print(info)

输出结果如下:

{'1': '武', '2': 'la', '3': 'ya'}
{'1': '武', '2': 'la', '3': 'ya', '4': '武'}

(3)删除:有三种方法,del info["1"];info.pop("2")  #必须有下标,否则会报错;#info.popitem()  #随机删除,一般不用。

(4)定义一个新的字典

b={
    '1':"AI",
    1:3,
    2:5
}

这时将info字典进行更新,info.update(b),如果存在key即更新,如果不存在即插入,则对info进行更新后显示如下:

{'1': 'AI', '2': 'la', '3': 'ya', 1: 3, 2: 5}

print(info.items()),此输出结果为:dict_items([('1', 'AI'), ('2', 'la'), ('3', 'ya'), (1, 3), (2, 5)])。

3.新建/初始化一个字典: c=info.fromkeys([6,7,8],"test"),也可以将info写成dict,  

c=dict.fromkeys([6,7,8],"test")   #初始化一个字典,6,7,8为key,value可以为空,也可以赋值,三个key共享一个地址。

如果写一个有字典嵌套的key,如下:三个key共享一个地址

c=dict.fromkeys([6,7,8],[1,{"name":"alex"},444])
print(c)
c[7][1]['name']="chen"    #三个key共享一个地址
print(c)

输出结果为:

{6: [1, {'name': 'alex'}, 444], 7: [1, {'name': 'alex'}, 444], 8: [1, {'name': 'alex'}, 444]}
{6: [1, {'name': 'chen'}, 444], 7: [1, {'name': 'chen'}, 444], 8: [1, {'name': 'chen'}, 444]}

4.print(info.get('4')),如果在字典中存在该key,则返回value,如果不存在,返回None;

print('3' in info),存在该key值,返回True,不存在,返回False

5.字典的循环:与其他循环语句并无差别

for i in info:
    print(i,info[i])
for k,v in info.items():
    print(k,v)

6.字典的嵌套使用:

catlog={
    "欧美":{
        "www.yourporn.com":["免费的最大","质量一般"],
        "www.pornhub.com":["免费的很大","质量比yourporn好"] 
    },
    "日韩":{
        "tokoy-hot":["质量不知道","听说收费"]
    },
    "大陆":{
        "1024":["免费","服务器在国外"]
    },
}

(1)修改,与不嵌套的字典修改方法差不多,catlog["大陆"]["1024"][1]="可以在国内做镜像"

(2)setdefault能取到key值便输出该key原有的value,取不到便新增。

catlog.setdefault("taiwan",{"www.baidu.com":[1,2]}) #能取到key值就输出,不能取到就新增
catlog.setdefault("大陆",{"www.baidu.com":[1,2]})

因此在输出结果中增加'taiwan': {'www.baidu.com': [1, 2]},大陆的value并未发生改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值