小甲鱼~字典

字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对
不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住.键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
字典支持无限极嵌套

  • fromkeys()用于创建字典
  • dict()创建字典
  • 字典名[要改变或添加的key]=要改的或加的value
  • id():查地址
  • del :删除元素 eg:del dict8[‘key’],删除了整个元素,连dict8这个变量都完全不存在
  • clear:也是清空,不过是把里面的内容清空,而变成了一个空的变量
>>> dict4=dict((('小',18),('da',12)))
>>> dict4
{'小': 18, 'da': 12}

>>> dict4['xiaomao']=12
>>> dict4 #增加一个值
{'小': 18, 'da': 12, 'xiaomao': 12}

>>> dict4['da']=13
>>> dict4  #改变相应key对应的value
{'小': 18, 'da': 13, 'xiaomao': 12}

>>> dict1={}
>>> dict1.fromkeys((1,2,3))
{1: None, 2: None, 3: None}

>>> dict1.fromkeys((1,2,3),('one'))
{1: 'one', 2: 'one', 3: 'one'}

>>> dict1.fromkeys((2,4),('one','two'))
{2: ('one', 'two'), 4: ('one', 'two')}

>>> dict1 = dict1.fromkeys(range(32),'赞')
>>> dict1 #range(a,n)是将a到n-1的数全部输出
{0: '赞', 1: '赞', 2: '赞', 3: '赞', 4: '赞', 5: '赞', 6: '赞', 7: '赞', 8: '赞', 9: '赞', 10: '赞', 11: '赞', 12: '赞', 13: '赞', 14: '赞', 15: '赞', 16: ' 赞', 17: '赞', 18: '赞', 19: '赞', 20: '赞', 21: '赞', 22: '赞', 23: '赞', 24: '赞', 25: '赞', 26: '赞', 27: '赞', 28: '赞', 29: '赞', 30: '赞', 31: '赞'}

三种方法:keys(),values(),items(),分别求对应的值

get()方法:求某个值,如果在字典中则结果是该值。如果没有得到null,但是如果之前get(3,‘没有’)则如果没有3在字典里面则会打印‘没有’
但如果是不用get方法直接访问不存在的key,程序会报错,所有用get方法更安全

找到了就返回本来应该返回的值
dict1 = {'清华':985,'北大':985,'南昌':211}
print(dict1.get('浙大')) #会返回None
print(dict1['浙大'])#会报错
print(dict1.get('浙大','do not find'))#会返回do not find
#没有找到的时候可以返回默认值

也可以直接用成员资格操作符in,not in

>>> dict8=dict.fromkeys(range(3),'加油!')
>>> dict8  #fromkeys()用于创建字典
{0: '加油!', 1: '加油!', 2: '加油!'}

三种方法:keys(),values(),items()
>>> for each in dict8.keys():
 print(each)
0
1
2
>>> for i in dict8.values():
 print(i)
加油!
加油!
加油!
>>> for i in dict8.items():
 print(i)
(0, '加油!')
(1, '加油!')
(2, '加油!')
>>>dict1 = {'清华':985,'北大':985,'南昌':211}
>>>print(dict1.keys)
dict_keys(['清华', '北大', '南昌'])
#将dict1的key全部打印出来
#同理还有print(dict1.values)  , print(dict1.items)

#enumerate函数:用这个枚举函数会返回每一个的下标和key
>>>for i,a in enumerate(dict1):
>>>print(i,a)   
0 清华
1 北大
2 南昌  #上下的两组差异就是上面一个分开返回
>>>for i in enumerate(dict1):
>>>print(i)  
(0, '清华')
(1, '北大')
(2, '南昌')

get()方法
>>> dict8.get(3)
>>> print(dict8.get(3))
None
>>> print(dict8.get(2,'没有'))
加油!
>>> print(dict8.get(5,'没有'))
没有


成员操作符innot in使用:判断是否在里面
>>> 3 in dict8 #判断3是否在字典dict8中
False
>>> 3 not in dict8
True
>>> 2 in dict8
True

clear()方法:清空

>>> dict1=dict.fromkeys((range(2,6)),'欧克')
>>> dict1
{2: '欧克', 3: '欧克', 4: '欧克', 5: '欧克'}
>>> dict1.clear() #清空字典
>>> dict1 
{}

pop():将字典元素抛出,类似于栈中的pop方法
popitem() :随机返回并删除字典中的最后一对键和值。如果字典已经为空,却调用了此方法,就报出KeyError异常。返回一个键值对(key,value)形式,按照 LIFO(Last In First Out 后进先出法) 顺序规则,即最末尾的键值对。
setdefault() :如果键不在字典中,则使用默认值插入键。
如果key在字典中,则返回key的值,否则为默认值。

>>> dict8=dict.fromkeys(range(3),'加油!')
>>> dict8.pop(2)
'加油!'
>>> dict8
{0: '加油!', 1: '加油!'}
>>>dict8.popitem()
(4, '加油!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值