Python 字典

字典和数据库中比较相似,通过 【键值( key )】 来找 【数据( value)】
字典是Python语言中唯一的映射类型。
字典是可以直接修改的。

注意点

  • key-value结构
  • key必须为不可变数据类型、必须唯一
  • 可存放任意多个value、可修改、可以不唯一
  • 无序

创建


>>>#方法1 
>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian
{'num': 'ok', 'num1': 2, 'num2': 'w'}
>>>#或者方法2 
>>> zidian2=dict(num="no",num1=3,num2='w')
>>> zidian2
{'num': 'no', 'num1': 3, 'num2': 'w'}
>>> #或者方法3
>>> zidian3=dict({"num":"ok",
...         "num1":2,
...         "num2":'w'})
>>> zidian3
{'num': 'ok', 'num1': 2, 'num2': 'w'}
>>> #或者方法4 使用fromkeys()方法
>>>zidian4.fromkeys([1,2,3,4,5,6],"ok")
{1: 'ok', 2: 'ok', 3: 'ok', 4: 'ok', 5: 'ok', 6: 'ok'}

既然创建了字典,下面讲述如何取用字典的变量值

字典的变量值是通过 键值 来确定的,那么,我们只需要找到相应的键值,就可以输出对应的变量值。

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian["num"]
'ok'
>>> zidian["num2"]
'w'

以上是创建和输出单个变量的字典方法
而在实际的开发过程中,我们会用到多个变量的情况,也就是一个键值,对应多个变量
下面,是一个键值对应多个变量

刚才我们讲了用fromkeys()方法创建单个变量,其实还可以创建多个变量,
只不过前边的为 键值,后面的为所有键值的,共同value

>>>zidian4={}
>>> zidian4.fromkeys([1,2,3,4,5,6],["ok",2])
{1: ['ok', 2], 2: ['ok', 2], 3: ['ok', 2], 4: ['ok', 2], 5: ['ok', 2], 6: ['ok', 2]}

这个时候,我们去打印 [zidian4] 的时候,[zidian4] 其实是没有值的

>>> zidian4
{}

那么,可以这样来做

>>>zidian4={}
>>> zidian4={}.fromkeys([1,2,3,4,5,6],["ok",2])
>>> zidian4
{1: ['ok', 2], 2: ['ok', 2], 3: ['ok', 2], 4: ['ok', 2], 5: ['ok', 2], 6: ['ok', 2]}

使用数组来转变为字典,

>>> num1=["ok","ok1","ok2","ok3"]
>>> num2=[1,2,3,4]
>>> num3={}
>>> num3.fromkeys(num1,num2)
{'ok': [1, 2, 3, 4], 'ok1': [1, 2, 3, 4], 'ok2': [1, 2, 3, 4], 'ok3': [1, 2, 3, 4]}

同样,可以看到前边的为 键值,后面的为所有键值的,共同value

如何取用键值的多个 value呢,其实后面的和列表一样,只要先确定 键值,在加上下标值就可

>>> zidian4 = {1: ['ok', 2], 2: ['ok', 2], 3: ['ok', 2], 4: ['ok', 2], 5: ['ok', 2], 6: ['ok', 2]}
>>> zidian4[1][1]
2
>>> zidian4[3][0]
'ok'

字典是可以直接修改的。修改和列表类似

zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian["num1"]=3
>>> zidian
{'num': 'ok', 'num1': 3, 'num2': 'w'}
>>>#以上是单个变量,下面是多个变量的修改方法
>>> zidian4={}.fromkeys([1,2,3,4,5,6],["ok",2])
>>> zidian4
{1: ['ok', 2], 2: ['ok', 2], 3: ['ok', 2], 4: ['ok', 2], 5: ['ok', 2], 6: ['ok', 2]}
>>> zidian4
{1: ['ok', 2], 2: ['ok', 2], 3: ['ok', 2], 4: ['ok', 2], 5: ['ok', 2], 6: ['ok', 2]}
>>> zidian4[2][1]=3
>>> zidian4
{1: ['ok', 3], 2: ['ok', 3], 3: ['ok', 3], 4: ['ok', 3], 5: ['ok', 3], 6: ['ok', 3]}
>>> #多个变量的修改方法也是一样,变量统一进行修改

说完了基础的使用,再说说,字典的相关方法的操作

fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
copy() 返回一个字典的复制
.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
items()以列表返回所有对象
keys() 返回 所有键值
values() 返回所有 value
key in dict 如果键在字典dict里返回true,否则返回false
update(dict2) 把字典dict2的键/值对更新到dict里
pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem() 随机返回并删除字典中的最后一对键和值。
clear() #删除字典内所有元素

fromkeys()前面已经讲的很详细了,这里就不在重复了。

copy() 就是复制

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian2=zidian.copy()
>>> zidian2
{'num': 'ok', 'num1': 2, 'num2': 'w'}

>>> #其实也可以这样
... zidian3=zidian2
>>> zidian3
{'num': 'ok', 'num1': 2, 'num2': 'w'}

get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值


>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian.get("num1")    #查找到则返回键值
2
>>> zidian.get("num3")      #在没有输入查找不到则键值时,则返回空,还可以指定查找不到则键值时,返回什么。
>>> zidian.get("num3","NO")
'NO'

setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
也就时即使后面指定了,查找不到内容时,返回的内容, setdefault,照样不给你任何返回,没有就是没有。

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian.setdefault("num1")
2
>>> zidian.setdefault("num3")
>>> zidian.setdefault("num1","ok")
2
>>> zidian.setdefault("num3","ok")

items()

zidian.items()
dict_items([('num', 'ok'), ('num1', 2), ('num2', 'w')])

keys() 返回含有的 键值

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>>zidian.keys()
dict_keys(['num', 'num1', 'num2'])

values() 返回所有 value

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian.values()
dict_values(['ok', 2, 'w'])

key in dict 如果键在字典dict里返回true,否则返回false

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
`>>> if "num1" in zidian:
...     print("键 num1 存在")
... else :
...     print("键 num1 不存在")
... 
键 num1 存在

update(dict2) 把字典dict2的键/值对更新到dict里

>>> dict = {'Name': 'Runoob', 'Age': 7}
>>> dict2 = {'Sex': 'female' }
>>> dict.update(dict2)
>>> dict
{'Name': 'Runoob', 'Age': 7, 'Sex': 'female'}

pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian.pop("num")
'ok'
>>> zidian
{'num1': 2, 'num2': 'w'}

popitem() 随机返回并删除字典中的最后一对键和值。

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian
{'num': 'ok', 'num1': 2, 'num2': 'w'}
>>> zidian.popitem()
('num2', 'w')
>>> zidian.popitem()
('num1', 2)

clear() #删除字典内所有元素

zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> zidian.clear()
>>> zidian
{}

删除 字典

>>> zidian={"num":"ok",
...         "num1":2,
...         "num2":'w'}
>>> del zidian
>>> zidian
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'zidian' is not defined
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值