4.字典知识汇总

2018-05-26  本文已影响0人  honestpan
  1. 使用函数dict 从其他映射(如其他字典)或者键值对序列创建字典。
items = [("name","john"),("age",123)]
dItems = dict(items)
print(dItems)#{'name': 'john', 'age': 123}

#关键字实参
dItems = dict(name='jay',age=12)
print(dItems)#{'name': 'jay', 'age': 12}
  1. 基本的字典操作
#len()返回字典中包括的项目数
print("dItems 中元素的个数是: %d" %(len(dItems)))
#d[key] 返回与key关联的value
print("name = %s" %(dItems['name']))
#d[key]=value 修改字典中的项
dItems['age'] = 23
print("修改年龄后是:%d" %dItems['age'])

#del d[key] 删除健为key的项
del dItems['name']
dItems['name'] = '六小龄童'

print("我的艺名是:%s,年龄是 %d" %(dItems['name'],dItems['age']))
#key in d 检查字典是否包含键key
if 'name' in dItems:
    print(dItems['name'])
  1. 将字符串格式设置功能用于字典
books = {'book1':'人间失格',"book2":"悲惨世界"}
print("book1 的名称是{book1}".format_map(books))
  1. 字典方法
dict2 = dict([("语文",99),("英语",34)])
dict2.clear()
print(dict2)#{}
x = {'username':'admin','machines':['foo','bar','baz']}
y = x.copy()
y['username'] = 'mlh'
print(x)#{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
y['machines'].append('hod')
print(y)#{'username': 'mlh', 'machines': ['foo', 'bar', 'baz', 'hod']}
print(x)#{'username': 'admin', 'machines': ['foo', 'bar', 'baz', 'hod']}

为了避免原件受影响,因此可以用 deepcopy

from copy import deepcopy
x = {'username':'admin','machines':['foo','bar','baz']}
z = deepcopy(x)
print(z)#{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
z['username'] = 'jone'
z['machines'].clear()
print(x)#{'username': 'admin', 'machines': ['foo', 'bar', 'baz']}
print(z)#{'username': 'jone', 'machines': []}
dict_k = {}.fromkeys(['name','age'])
print(dict_k)#{'name': None, 'age': None}
dict_k1 = dict.fromkeys(['name','age'])
print(dict_k1)#{'name': None, 'age': None}
print({}.fromkeys(['name','age'],'~~~'))#{'name': '~~~', 'age': '~~~'}
x = {'username':'admin','machines':['foo','bar','baz']}
print(x.get('username'))#admin
print(x.get('age'))#None
print(x.get('sex','F'))#F
x = {"name":"jone","sex":"F","age":23}
y = x.items()
print(y)#dict_items([('name', 'jone'), ('sex', 'F'), ('age', 23)])
print(len(y))#3
x = {"name":"jone","sex":"F","age":23}
print(x.keys())#dict_keys(['name', 'sex', 'age'])
x = {"name":"jone","sex":"F","age":23}
print(x.pop('name'))#jone
print(x)#{'sex': 'F', 'age': 23}
x = {"name":"jone","sex":"F","age":23}
print(x.popitem())
x = {"name":"jone","sex":"F","age":23}
x.setdefault('sal',2003.34)
print(x)#{'name': 'jone', 'sex': 'F', 'age': 23, 'sal': 2003.34}
x.setdefault('address')
print(x)#{'name': 'jone', 'sex': 'F', 'age': 23, 'sal': 2003.34, 'address': None}
x.setdefault('address','has ming')#{'name': 'jone', 'sex': 'F', 'age': 23, 'sal': 2003.34, 'address': None}
x = {"name":"jone","sex":"F","age":23}
y = {"name":"li","age":45}
x.update(y)

如果y中的键在x中不存在,那么就把字典y中的项加入到x中,如果键在x中存在就更新之

x = {"name":"jone","sex":"F","age":23}
y = {"name":"li","age1":45}
x.update(y)
print(x)#{'name': 'li', 'sex': 'F', 'age': 23, 'age1': 45}
dict1 = dict([("语文",23),("数学",34)])
print(dict1.values()) # dict_values([23, 34])
上一篇 下一篇

猜你喜欢

热点阅读