字典

1.作用:记录一组数据

2.定义:{}内用逗号分隔开多个key:value,其中value可以使任意类型,但是key必须是不可变类型,且不能重复

2.1新建一个字典的四种方式

#方式一:
d={'k1':111,(1,2,3):222} # d=dict(...)
print(d['k1'])
print(d[(1,2,3)])
print(type(d))

#方式二:
d=dict(x=1,y=2,z=3)
print(d,type(d))

#方式三:
info=[
['name','egon'],
('age',18),
['gender','male']
]
# res=dict(info) 
print(res)

#方式四:快速初始化一个字典
keys=['name','age','gender']
d={}
d={}.fromkeys(keys,None)
print(d)

内置方法

1.按key取值:可存可取
若key存在可以修改
若key不存在可以创建新的key:value

2.len()
有几个key就有多长
ps:相同的key只取最后一个
d={'k1':111,'k2':2222,'k1':3333,'k1':4444}
len(d)
#2

成员运算符(in/not in)

ps:根据key来判断
d={'k1':111,'k2':2222}
print('k1' in d) #True
print(111 in d) #False

删除

4.1 del删除
通过key来删除一对key:value
d={'k1':111,'k2':2222}
del d['k1']
print(d)
#{'k2': 2222}
4.2 pop删除
根据key删除元素,返回删除key对应的那个value值
d={'k1':111,'k2':2222}
res=d.pop('k2')
print(d) #{'k1': 111}
print(res) #2222
4.3 popitem删除
随机删除,返回元组
d={'k1':111,'k2':2222}
res=d.popitem()
print(d) #{'k1': 111}
print(res) #('k2', 2222)

5.键keys(),值values(),键值对items()  =>在python3中得到的是老母鸡

d={'k1':111,'k2':2222}
在python2中
>>> d={'k1':111,'k2':2222}
>>> 
>>> d.keys()
['k2', 'k1']
>>> d.values()
[2222, 111]
>>> d.items()
[('k2', 2222), ('k1', 111)]
>>> dict(d.items())
{'k2': 2222, 'k1': 111}

循环

for k in d.keys():
    print(k)

for k in d:
    print(k)

for v in d.values():
    print(v)

for k,v in d.items():
    print(k,v)

print(list(d.keys()))
print(list(d.values()))
print(list(d.items()))

需要掌握的内置方法

7.1 clear()清除

d={'k1':111}
d.clear()
print(d) #{}

7.2 pdate()更新字典

ps:更新列表,可以添加列表没有的内容,可以替换已有的内容的值

d={'k1':111}
d.update({'k2':222,'k3':333,'k1':111111111111111})
print(d)     #{'k1': 111111111111111, 'k2': 222, 'k3': 333}

7.3 get() 根据key取值 若值不存在也不会报错 返回None

d={'k1':111}
print(d['k2'])  # key不存在则报错

print(d.get('k1')) # 111
print(d.get('k2')) # key不存在不报错,返回None

7.4. d.setdefault()

如果key有则不添加,返回字典中key对应的值

info={'name':'egon'}
res=info.setdefault('name','egon')
print(info)
print(res)

{'name': 'egon'}
egon

如果key没有则添加,返回字典中key对应的值

info={}
res=info.setdefault('name','egon')
print(info)
print(res)

{'name': 'egon'}
egon

posted @ 2020-03-11 20:49  江湖有梦  阅读(123)  评论(0编辑  收藏  举报