python语法-字典

'''
字典是另一种可变容器模型,且可储存任意类型对象
字典的每个键值 key => value 对用冒号 : 分割,每个键值对之间用逗号 ,分割,
整个字典包括在花括号{}中,
格式
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
'''

dict = {'Alice' : '2341', 'beth' : '9102', 'Cecil' : '3258'}
print(dict)
dict1 = {'abc' : 456}
print(dict1)
dict2 = {'abc' : 123, 98.6 : 37}
print(dict2)

#访问字典里的值 把相应的键放入熟悉的方括弧里
dict3 = {'Alice' : 'str', 'beth' : 9102, 'Cecil' : (1,2,3,4)}
print(dict3)
print("dict3['Alice'] = ",dict3['Alice'])
print("dict3['beth'] = ",dict3['beth'])
print("dict3['Cecil'] = ",dict3['Cecil'])

#修改字典 向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
dict4 = {'Alice' : 'str', 'beth' : 9102, 'Cecil' : (1,2,3,4)}
dict4['beth'] = 8
print(dict4['beth'])
dict4['School'] = "DPS school"
print(dict4['School'])
print(dict4)

#删除字典元素 能删除单一的元素也能清空字典,清空只需一项操作
#显示删除一个字典用del命令
dict5 = {'Name' : 'Zara', 'Age' : 7, 'Class' : 'First'}
# del dict5['Name']  删除键是Name的条目
# dict5.clear()  清空字典所有条目
# del dict5     删除字典
print(dict5)


''' 
字典键的特性
字典值可以没有任何限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行
两个重要的点需要记住
(1) 不允许同一个键出现多次,创建时,如果同一个键被赋值多次,最后一个值会被记住
(2) 键必须不可变,所以可以用数字,字符串,元组充当,所以用列表就不行
'''

dict6 = {'Alice' : '2341', 'beth' : '9102', 'Alice' : '3258', 'Alice' : 456564}
print(dict6)
'''
dict7 = {'Alice' : 'str', [1,2,3] : 9102, 'Cecil' : (1,2,3,4)}
print(dict7)
'''
'''
字典内置函数和方法:
包括以下内置函数
len(dict) 计算字典元素个数,即键的总数

str(dict) 输出字典可打印的字符串表示

type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型

包括以下内置方法

dict.clear() 删除字典内所有元素 {}

dict.copy() 返回一个字典的浅复制

dict.fromkeys(seq[, value]) seq--字典键值列表 value--可选参数,设置键序列(seq)的值
该函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
该方法返回一个列表

dict.get(key,default=None) 返回指定键的值,如果值不在字典中返回default值
参数:key--字典中要查找的键, default--如果指定键的值不存在时,返回默认值
返回指定键的值,如果不在字典中返回默认值None

dict.keys() 是列出字典所有的键

dict.items() 以列表返回可遍历的(键,值)元组数组

dict.setdefault(key,default=None)  和get方法类似,如果键不存在于字典中,将会添加键并将值设为默认值
key--查找的键值, default--键不存在时,设置的默认值
返回值:如果key在字典中,返回对应的值,如果不在字典中,则插入key及设置的默认值default,
并返回default,default默认值为None

dict.update(dict2)  把字典dict2的键/值对更新到dict里
dict2--添加到指定字典dict里的字典
该方法没有任何返回值

dict.values() 以列表返回字典中的所有值

pop() 删除字典给定键key对应的值,返回值为被删除的值。key值必须给出,否则,返回default值
语法:dict.pop(key[,default])
key--要删除的键值  default--如果没有key,返回default值
返回被删除的值

popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)
如果字典已经为空,却调用了此方法,就报出KeyError异常
返回一个键值对(key,value)形式



'''
dict8 = {'user' : 'runoob', 'num' : [1,2,3]}
dict9 = dict8
dict10 = dict8.copy()
dict8['user'] = 'root'
dict8['num'].remove(1)
print(dict8)
print(dict9)
print(dict10)


seq = ('name','age','sex')
dict11 = dict.fromkeys(seq)
print(dict11)
dict12 = dict.fromkeys(seq,10)
print(dict12)

dict13 = {'name': 'zara', 'Age': 27}
print(dict13.get('Age'))
print(dict13.get('sex','never'))
print(dict13.get('sex'))
# help("keywords")

dict14 = {'name': 'zara', 'Age': 27}
print(dict14.keys())
print('name' in dict14.keys())
print('name' in dict14)
dict15 = {'name': 'zara', 'Age': 27}
print(dict15.items())
for i,j in dict15.items():
    print(i, ":\t",j)
dict16 = {'name': 'zara', 'Age': 27}
print(dict16.setdefault('name',None))
print(dict16.setdefault('sex',None))
print(dict16)

dict17 = {'name': 'zara', 'Age': 27}
dict18 = {'sex': 'man'}
dict17.update(dict18)
print(dict17)

dict19 = {'name': 'zara', 'Age': 27}
dict20 = dict19.values()
print(list(dict20))

dict21 = {'name': 'zara', 'Age': 27}
# dict22 = dict21.pop('sex',None)
dict22 = dict21.pop('name')
print(dict22)
print(dict21)

dict23 = {'name': 'zara', 'Age': 27}
dict24 = dict23.popitem()
print(dict24)
print(dict23)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章