python中对字典的探讨

#python day05

字典

字典的主要特征如下:
(1)通过键来获取而不是索引值
(2)字典是任意对象的无序集合
(3)字典是可变的,而且可以任意嵌套
(5)字典的键必须是唯一的
(6)字典的键必须是不可变的

1.字典的创建和删除

dictionary = {'key1':'value1','key2':'value2',..,'keyn':'valuen',}

1.1 通过映射函数来创建字典

dictionary = dict(zip(tuple1,list2)) #关于键值推荐使用元组来创建

实例01:创建一个保存帅哥星座的字典

name = ('吴彦祖','彭于晏','胡歌','吴亦凡')
sign = ['金牛座','射手座','双子座','处女座']
dictionary = dict(zip(name,sign))
print(dictionary)

1.2 通过指定的“键值对”来创建字典

dictionary = dict(key1=value1,key2=value2,key3=value3,...,keyn=valuen)

将实例01通过键值对来创建

dictionary = dict(吴彦祖 = '金牛座',彭于晏 = '射手座',胡歌 = '双子座',吴亦凡 = '处女座'print(dictionary)

还可以使用dict对象的fromkeys()方法创建键值为空的字典

name_list = ['金牛座','射手座','双子座','处女座']
dictionary = dict.fromkeys(name_list)
print(dictionary)

1.3 通过键值对访问字典

print(dictionary['吴彦祖'])

在python中,个人更加推荐使用get()方法来获取指定键的值

dictionary.get(key,default)

default为可选选项,当指定键不存在时,会返回一个默认值。如果省略,则返回None

print(dictionary.get('王德发','我的字典里没有此人')

实例02:将某大学寝室里4个帅哥的名字和星座保存在一个字典里,然后再定义一个保存各个星座性格特点的字典,根据这两个字典获取某位帅哥的性格特点。

name = ('傻奔','傻付','渣男达','帅哥源')
sign_person = ['白羊座','双子座','巨蟹座','金牛座']
person_dict = dict(zip(name,sign_person))
sign_all = ['白羊座','双子座','巨蟹座','金牛座','狮子座','处女座','摩羯座',
            '射手座','天蝎座','天秤座','水瓶座','双鱼座']
nature = ['白羊座:虽然自我,孤单的自我。',
          '双子座:活泼掩盖bai不为人知的痛。',
          '巨蟹座:在家人面前TA永远快乐。',
          '金牛座:稳重,一种严肃的伪装。',
          '狮子座:高傲,不露出自己的脆弱。',
          '处女座:TA要的完美其实很简单。',
          '摩羯座:TA的顽固,只是想要保护自己。',
          '射手座:TA不是那么善变,只是怕受伤。',
          '天蝎座:冷酷,是因为TA不想再受伤。',
          '天秤座:好像快乐,其实那样的孤单。',
          '水瓶座:TA想自由,可是确不能。',
          '双鱼座:TA多希望TA的梦能实现']
sign_dict = dict(zip(sign_all,nature))
print("【帅哥源】的星座是",person_dict.get('帅哥源'))
print("\n他的性格特点是:\n\n",sign_dict.get(person_dict.get('帅哥源')))

1.4 遍历字典
使用字典对象中的items()方法可以获取字典中的“键值对”列表

dictionary.items()
name = ('吴彦祖','彭于晏','胡歌','吴亦凡')
sign = ['金牛座','射手座','双子座','处女座']
dictionary = dict(zip(name,sign))
for item in dictionary.items():
    print(item)

想要获取具体的每个键和值,可以这样编写

name = ('吴彦祖','彭于晏','胡歌','吴亦凡')
sign = ['金牛座','射手座','双子座','处女座']
dictionary = dict(zip(name,sign))
for key,value in dictionary.items():
    print(key,vaule)

2 添加、修改和删除字典元素
2.1 添加字典元素

dictionary[key] = vaule
name = ('吴彦祖','彭于晏','胡歌','吴亦凡')
sign = ['金牛座','射手座','双子座','处女座']
dictionary = dict(zip(name,sign))
dictionary['王德发'] = '双鱼座'
print(dictionary)

2.2 修改字典元素

dictionary[key] = newvaule
name = ('吴彦祖','彭于晏','胡歌','吴亦凡')
sign = ['金牛座','射手座','双子座','处女座']
dictionary = dict(zip(name,sign))
dictionary['吴亦凡'] = '双鱼座'
print(dictionary)

2.3 删除字典元素

del dictionary[key]
name = ('吴彦祖','彭于晏','胡歌','吴亦凡')
sign = ['金牛座','射手座','双子座','处女座']
dictionary = dict(zip(name,sign))
del dictionary['吴亦凡']
print(dictionary)

3 字典推导式
快速生成包含4个随机数的字典,键使用数字来使用

import random
dandomdict = {i:random.randint(10,100) for i in range(1,5)}
print(dandomdict)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值