python中字典的定义及创建字典

一、字典(dictionary)
字典和列表类似,也是可变序列,只是与列表不同,它是无序的可变序列,保存的内容是以“键——值对”的形式存放,这类似于我们使用查找汉字的新华字典,它可以把拼音和汉字串起来,通过拼音音节表来快速查找到想要找的汉字。其中新华字典里面的音节表相当于(键)对应的汉字相当于值(value)。键是惟一的,而值可以是多个。字典在定义一个包含多个命名字段的对象时有很大用处。
**说明:**python中的字典相当于Java或者c++中的map对象。
字典的主要特征:
1.通过键而不是通过索引来读取
字典有时也称为关联数组或者散列表(hash),它是通过键将一系列的值联系起来,这样就可以通过键从字典中获取指定项,但不能通过索引来获取。
2.字典是任意对象的无序集合
字典是无序的,各项是从左到右随机排序的,及保存在字典当中的项没有特定的顺序,这样可以提高查找速度。
3.字典是可变的,并且是可以任意嵌套
字典可以在任意处正常或缩短(无需生成一份副本)并且他支持任意深度的嵌套(字典的值可以使列表或者其他子字典)
4.字典中的键必须是唯一
不允许同一个键出现两次,如果出现两次,则后一个值会被记住,第一个会被忘记。
5.字典中的键必须不可变。
字典中的键是不可改变的,所以可以使用数字、字符串或者元组,但不能使用列表。
二、字典的创建和删除
定义字典时,每个元素都包含两个部分:“键”和“值”。
创建字典时,在“键”和“值”之间用冒号隔开,相邻两个元素之间使用逗号隔开,所有元素都放在大括号中{}。

2.1创建字典
2.1.1创建字典的格式

dictionary = {'key1':'value1','key2':'value2',.....'keyn':'valuen',}
参数详解:dictionary:字典名称
key1,key2:元素的键,唯一不可变
value1,value2:元素的值,可以使用任何数据类型,不是唯一的

2.1.2创建字典

dictionary = {'qq':'123','微信':'456','易信':'789'}
print(dictionary)
print(type(dictionary))
打印结果
{'qq': '123', '微信': '456', '易信': '789'}
<class 'dict'>

2.1.3创建空字典

dictionary = {}
print(dictionary)
print(type(dictionary))
打印结果
{}
<class 'dict'>

2.1.4通过映射函数创建字典

name = ['root','westos']   定义键的列表
password = ['redhat','lee']  定义键的值
print(zip(name,password))      输出对象
print(list(zip(name,password)))    
print(dict(zip(name,password)))    列表转换成字典生成字典
打印结果:
<zip object at 0x7fb00f4dce08>
[('root', 'redhat'), ('westos', 'lee')]
{'root': 'redhat', 'westos': 'lee'}   字典

zip()函数用于将多个列表或元组对于位置的元素组合为元组,并返回这些内容的zip对象。如果想得到元组,可以将zip对象通过tuple()函数转为为元组,想得到列表可以使用list()函数将其转换为列表
2.1.5通过给定键——值对创建字典

1)
dictionary = {
    'root' : [123,456,789],     root和westos表示元素的键必须是惟一的,
    'westos':[321,654,987]       []内数字表是值可以改变
}
print(dictionary)
print(type(dictionary))
打印结果
{'root': [123, 456, 789], 'westos': [321, 654, 987]}
<class 'dict'>2)
dictionary = dict(小名 = '水瓶座', 小黑 = '狮子座', 小花 = '处女座')
print(dictionary)
dictionary = dict(小名 = '水瓶座', 小黑 = '水瓶座', 小花 = '处女座')
print(dictionary)
打印结果
{'小名': '水瓶座', '小黑': '狮子座', '小花': '处女座'}
{'小名': '水瓶座', '小黑': '水瓶座', '小花': '处女座'}

2.2字典嵌套

student = {
    'westos': {
          'id':'12345',
          'age':'20',
          'score':'50'
    },
    'redhat':{
          'id':'456789',
          'age':'13',
          'score':'20'
    }
}
print(student['westos']['id'])
打印结果
12345

2.3所有的key的value值相同的时候的定义方法

print({}.fromkeys({'1','2'},'000000'))
打印结果
{'2': '000000', '1': '000000'}

三、字典的特性(成员操作符、for循环遍历)
3.1不支持索引、切片
3.2成员操作符

d = {
    '1':'a',
    '2':'b'
}
print('1' in d)
print('1' not in d)
打印结果
True
False

3.3for循环遍历

d = {'1':'a','2':'b'}
for key in d:
    print(key,d[key])
打印结果
1 a
2 b
定义一个字典使用items()函数方法获得键——值对的元组列表,并输出全部键——值对
d = {'1':'a','2':'b'}
for key,valute in d.items():
    print(key,valute)
    打印结果
1 a
2 b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值