Pythone3.X的dict字典

字典自身是一个无序的可变容器,每个元素包含一对键值(key : value)。

key(键)

  • 键值必须是不可变对象,可以是除了list外的任意数据类型,可以使用仅包含(字符串、数字)的元组作为键。

  • 键值只允许出现1次,多次出现按照最后出现的键赋值为准。

一、创建dict字典

1) 一般方法

>>> cityInfo = {'City':'BeiJing',86:'CN',2016:2170.5,'GDP':22968.6}

2) dict()创建

>>> countryCode = dict([('CN','+86'),('USA','+001')])
>>> countryCode
{'CN': '+86', 'USA': '+001'}
#关键字参数指定 key-value 对
>>> countryCode = dict(USA='+001',JPN=81,CN=86)
>>> countryCode
{'USA': '+001', 'JPN': 81, 'CN': 86}

3)推导式

>>> myDict = {i:i**2 for i in (0,1,2,3,4,5)}
>>> myDict
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

4)fromkeys(iterable, value=None, /) 使用可迭代序列做key创建字典,value可以是任何数据类型

>>> myList = ['CN','USA','JPN','IND']
>>> myDict = dict.fromkeys(myList)
>>> myDict
{'CN': None, 'USA': None, 'JPN': None, 'IND': None}

二、访问dict字典的value值

1) 使用key键访问value值

>>> myDict = {'Name':'Simile',1:'Nub','Float':0.1,0:88,99.9:0.1}
>>> myDict['Name']
'Simile'
>>> myDict[1]#这里的[1]不同于list中的下标,这里代表的是字典中的key(键) 1
'Nub'
>>> myDict['Float']
0.1
>>> myDict[0]#这里的[0]不同于list中的下标,这里代表的是字典中的key(键) 0
88
>>> myDict[99.9]
0.1
>>> 

三、修改dict字典的value值

1)使用key键修改value值

>>> myDict = {'Name':'Simile',1:'Nub','Float':0.1,0:88,99.9:0.1}
>>> myDict[1] = 'one'#注意这里的[1]不是下标,而是数字类型的key值
>>> myDict[1] 
'one'
>>> myDict
{'name': 'Simile', 1: 'one', 'float': 0.1, 0: 88, 99.9: 0.1}

四、查找获取dict字典的key键

1)D.keys() 返回dict字典所有key键

#不使用list()返回元组安全类型
>>> myDict
{'CN': None, 'USA': None, 'JPN': None, 'IND': None}
>>> myDict.keys()
dict_keys(['CN', 'USA', 'JPN', 'IND'])

#使用list()返回一个由key键组成的无序列表
>>> countryCode = {'IND':'+91','CN':'+86','JPN':'+81','USA':'+001'}
>>> list(countryCode.keys())
['IND', 'CN', 'JPN', 'USA']

2)sorted() 返回一个由key键组成的有序列表

>>> sorted(countryCode.keys())
['CN', 'IND', 'JPN', 'USA']

3)in 判断key键是否存在

>>> 'CHK' in countryCode
False
>>> 'CN' in countryCode
True
>>> 'USA' not in countryCode
False

4)D.get(k[,d]) 如果key键存在dict字典中,返回key键对应的value值,不存在则返回default的默认value值None

>>> myDict = dict([('CN','+86'),('USA','+001')])
>>> myDict.get('CN')
'+86'
>>> myDict.get('JPN')#不存在的key不返回任何结果
>>>> myDict.get('JPN','+81')#但可以指定返回值
'+81'

5)D.setdefault(k[,d]) 类似 get() 的方法,若键不存在,则会添加进字典,default为默认值

>>> myDict = dict([('CN','+86'),('USA','+001')])
>>> myDict
{'CN': '+86', 'USA': '+001'}
>>> myDict.setdefault('JPN','+81')
'+81'
>>> myDict
{'CN': '+86', 'USA': '+001', 'JPN': '+81'}

五、查找dict字典中的value值

1) D.values() 返回dict字典中的所有value值

>>> myDict
{'CN': '+86', 'USA': '+001', 'JPN': '+81'}
>>> myDict.values()
dict_values(['+86', '+001', '+81'])

六、遍历dict字典

1) D.items() 以列表返回可遍历的key键value值元组

>>> myDict = dict.fromkeys(myList)
>>> myDict.items()
dict_items([('CN', None), ('USA', None), ('JPN', None), ('IND', None)])
#以列表返回的键值元祖可以用items()进行遍历返回键值
>>> countryCode = dict([('CN','+86'),('USA','+001')])
>>> for k,v in countryCode.items():
...     print(k,v)
... 
CN +86
USA +001

2)enumerate()位置和值

七、删除dict字典及其key键value值
1)del dict[k] 删除key键及对应的value值

>>> myDict
{'name': 'Simile', 1: 'one', 'float': 0.1, 0: 88, 99.9: 0.1}
>>> del myDict[1]
>>> myDict
{'name': 'Simile', 'float': 0.1, 0: 88, 99.9: 0.1}

2)D.pop(k[,d]) 删除key及对应的value值

3)D.popitem() 随机删除一对key键value值并返回,空dict字典会报错

4)D.clear() 清除dict字典所有key键value值

>>> myDict.clear()
>>> myDict
{}

5) del dict 彻底删除一个dict字典

>>> del myDict
>>> myDict
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'myDict' is not defined

八、dict字典其他常用方法

1)D.clear() 清除dict字典中的key键value值

>>> myDict.clear()
>>> myDict
{}

2)D.copy() 浅拷贝

>>> myDict = {'zero':0 , 'list':[2,4,6] , 10:'ten'}
>>> copyDict = myDict.copy()
>>> copyDict['zero'] = 'ling-0'
>>> copyDict
{'zero': 'ling-0', 'list': [2, 4, 6], 10: 'ten'}
>>> myDict
{'zero': 0, 'list': [24, 6], 10: 'ten'}
# 这里发现,'list'对应的值发生了改变
>>> copyDict['list'].remove(2)
>>> copyDict
{'zero': 'ling-0', 'list': [4, 6], 10: 'ten'}
>>> myDict
{'zero': 0, 'list': [4, 6], 10: 'ten'}

3)D.update([E, ]**F) 把一个字典的键值更新到另一个字典中

>>> dictA = {'CN':'+86','USA':'001'}
>>> dictB = {'City':'BeiJing'}
>>> dictA.update(dictB)
>>> dictA
{'CN': '+86', 'USA': '001', 'City': 'BeiJing'}

九、dict字典常用函数
1) len(dict)

>>> myDict = {'name':'Simile',1:'number','float':0.1,0:88,99.9:0.1}
>>> len(myDict)
5

2) str(dict)

>>> str(myDict)
"{'name': 'Simile', 1: 'number', 'float': 0.1, 0: 88, 99.9: 0.1}"

3)type(variable)

>>> type(myDict)
<class 'dict'>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值