定义
字典存放 key - value(键值对),且value值可以是任意的数据类型
m ={"sheen":[100,99,100],'star':[97,100,100]}
print(m,type(m))
{'sheen': [100, 99, 100], 'star': [97, 100, 100]} <class 'dict'>
集合常用方法fromkeys:
第一个参数可以是列表/元组/字符串/集合,将参数中每一个值作为key值
并且所有value值都相同
#生成8个银行卡号,默认密码为'000000'
cards = []
for i in range(8):
card = '6217 0042 %.3d' % (i)
cards.append(card)
print(cards)
print({}.fromkeys(cards, '000000'))
{'6217 0042 000': '000000', '6217 0042 001': '000000', '6217 0042 002': '000000', '6217 0042 003': '000000', '6217 0042 004': '000000', '6217 0042 005': '000000', '6217 0042 006': '000000', '6217 0042 007': '000000'}
特性
字典不支持index索引,切片,重复,连接。
索引必须使用关键字
成员操作符只对关键字可用
m=dict(a=3,b=5,c=7)
print('a' in m)
print(3 in m)
True
False
- for遍历
for循环: 默认遍历字典的key值;
d=dict(a=3,b=5,c=7)
for i in d:
print(i)
for i,v in enumerate(d):
print(i, '-----', v)
a
b
c
0 ----- a
1 ----- b
2 ----- c
增加
- 直接添加
d=dict(a=3,b=5,c=7)
d['m']=0
print(d)
{'a': 3, 'b': 5, 'c': 7, 'm': 0}
- update()
如果key值存在,则更新value值
如果key值不存在,则添加key-value对
d=dict(a=3,b=5,c=7)
d.update(a=0)
d.update(d=9)
print(d)
{'a': 0, 'b': 5, 'c': 7, 'd': 9}
- setdefault
如果key值已经存在, 不做修改;
如果key值不存在, 添加key-value值;默认情况下value值为None
d.setdefault('n',4)
d.setdefault('b',100)
print(d)
{'a': 0, 'b': 5, 'c': 7, 'm': 0, 'd': 9, 'n': 4}
删除
- pop()
弹出指定的key-value对
d=dict(a=3,b=5,c=7)
d.pop('a')
print(d)
{'b': 5, 'c': 7}
- popitem()
随机删除key-value对
d={'b': 5, 'c': 7}
d.popitem()
print(d)
{'b': 5}
- del
随机删除key-value对
d=dict(a=3,b=5,c=7,m=11,n=12)
del d['b']
print(d)
{'a': 3, 'c': 7, 'm': 11, 'n': 12}
- clear
清空字典
d={'a': 3, 'c': 7, 'm': 11, 'n': 12}
d.clear()
print(d)
{}
查看与修改
services={'http':80,'ssh':22,'ftp':21}
- 查看字典里面所有的key值
print(services.keys())
dict_keys(['http', 'ssh', 'ftp'])
- 查看字典里面所有的value值
print(services.values())
dict_values([80, 22, 21])
- 查看字典里面所有的key-value值
print(services.items())
dict_items([('http', 80), ('ssh', 22), ('ftp', 21)])
- 遍历
for k,v in services.items(): # k,v = ('http', 80)
print(k , '--->', v)
for k in services:
print(k, '--->', services[k])
http ---> 80
ssh ---> 22
ftp ---> 21
http ---> 80
ssh ---> 22
ftp ---> 21
查看指定key对应的value值, 注意: key不存在, 就会报错
users={'root':'redhat','studnet':'studnet','sheen':'star'}
print(users['root'])
#print(users['alex'])#报错,KeyError: 'alex'
redhat
- get方法获取指定key值对应的value值
如果key值存在, 返回对应的value值; 如果key值不存在, 默认返回None, 如果需要指定返回的值, 传值即可;
users={'root':'redhat','studnet':'studnet','sheen':'star'}
print(users.get('studnet'))
print(users.get('alex'))
studnet
None
实现switch
针对不同的case,语句执行内容不同
grade = 'C'
d = {
'A':'优秀',
'B':'良好',
'C':'合格'
}
# if grade in d:
# print(d[grade])
# else:
# print('error')
print(d.get(grade,'error'))
合格
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。