python字典的相关操作
-
字典定义、与引用
names = {'name':'老王','age':18,'addr':'山东'} print("%s %d %s"%(names['name'],names['age'],names['addr'])) # 运行结果 老王 18 山东
-
名片管理系统
#1、打印功能提示 print("="*50) print(" 名片管理系统 8v.6") print(" 1、添加一个新的名片") print(" 2、删除一个名片") print(" 3、修改一个名片") print(" 4、查询一个名片") print(" 5、显示所有的名片") print(" 6、退出系统") print("="*50) card_infors = [] while True: #2、获取用户的输入 reault =int(input("请输入你的选择:")) #3、根据用户的输入,执行相应的功能 if reault == 1: new_name = input("请输入新的名字:") new_qq = input("请输入新的qq:") new_weixin = input("请输入新的weixin:") new_addr = input("请输入新的地址:") new_infor = {} new_infor['name'] = new_name new_infor['qq'] = new_qq new_infor['weixin'] = new_weixin new_infor['addr'] = new_addr card_infors.append(new_infor) #print(card_infors) for test print("="*50) print() elif reault == 2: new_name = input("请输入你要删除人的姓名:") lenght = len(card_infors) i = 0 while i<lenght: if card_infors[i]['name'] == new_name: del card_infors[i] break i+=1 print(card_infors) print("="*50) print() elif reault == 3: index = 0 i = 0 name = input("请输入你要修改的名字:") for dict_name in card_infors: if dict_name['name'] == name: index+=1 card_infors[i]['name'] = input("请输入一个新的名字:") card_infors[i]['qq'] = input("请输入一个新的qq:") card_infors[i]['weixin'] = input("请输入一个新的weixin:") card_infors[i]['addr'] = input("请输入一个新的地址:") print(card_infors) break i+=1 if index == 0: print("没有找到。。。") print("="*50) print() elif reault == 4: index = 0 name = input("请输入你要查找的名字:") for dict_name in card_infors: if dict_name['name'] == name: index+=1 print("名字\tQQ\t微信\t住址") print("%s\t%s\t%s\t%s"%(dict_name['name'],dict_name['qq'],dict_name['weixin'],dict_name['addr'])) break if index == 0: print("没找到。。。") print("="*50) print() elif reault == 5: print("名字\tQQ\t微信\t住址") for card in card_infors: print("%s\t%s\t%s\t%s"%(card['name'],card['qq'],card['weixin'],card['addr'])) print("="*50) print() elif reault == 6: break else: print("你输入的有误,请亲从新输入(1-5)谢谢亲的配合。。。") # 运行结果 ================================================== 名片管理系统 8v.6 1、添加一个新的名片 2、删除一个名片 3、修改一个名片 4、查询一个名片 5、显示所有的名片 6、退出系统 ================================================== 请输入你的选择:1 请输入新的名字:李白 请输入新的qq:1333333333 请输入新的weixin:1222222222 请输入新的地址:老 老王街道 ================================================== 请输入你的选择:5 名字 QQ 微信 住址 李白 1333333333 1222222222 老王街道 ==================================================
-
字典的元素增-dict[key]=value
names = {'name':'老丁','age':18,'addr':'山东'} #增加一个元素 #写一个没有的键名 names['photo'] = '1330137079' print(names) # 运行结果 {'age': 18, 'addr': '山东', 'name': '老丁', 'photo': '1330137079'}
-
字典元素删除-del
names = {'name':'老丁','age':18,'addr':'山东'} #del删除一个元素 #要删除已有的键要不然就报错 del names['name'] print(names) # 运行结果 {'age': 18, 'addr': '山东'}
-
字典的元素的修改-dict[key]=value
names = {'name':'老丁','age':18,'addr':'山东'} #修改一个元素的值 你要写已有的键 #要不然就是添加元素了 names['age']=19 print(names) # 运行结果 {'name': '老丁', 'age': 19, 'addr': '山东'}
-
字典元素的查询-get
names = {'name':'老丁','age':18,'addr':'三栋'} #查询字典元素 #有这个键就会反回它的值 a=names.get('name') print(a) # 运行结果 老丁
-
字典里for-else
names = [{'name':'老丁','age':18,'addr':'山东'},{'name':'老李','age':19,'addr':'河北'}] name = input("请输入你要查找的名字:") for temp in names: if temp['name'] == name: print('找到了...') break else: print("没有找到...") # 运行结果 请输入你要查找的名字:张三 没有找到...
-
测量字典中.键值对的个数-len
name = {'name':'老丁','age':18} #测量字典中.键值对的个数 num = len(name) print(num) # 运行结果 2
-
反回一个包含字典所有key的列表对象-keys
name = {'name':'老丁','age':18} #反回一个包含字典所有key的列表对象 num = name.keys() print(num) # 运行结果 dict_keys(['age', 'name'])
-
反回一个包含字典所有value的列表对象-values
name = {'name':'老丁','age':18} #反回一个包含字典所有value的列表对象 num = name.values() print(num) # 运行结果 dict_values(['老丁', 18])
-
反回一个包含所有键.值元组的列表对象-items
name = {'name':'老丁','age':18} #反回一个包含所有(键,值)元组的列表对象 num = name.items() print(num) # 运行结果 dict_items([('name', '老丁'), ('age', 18)])
-
for循环遍历字典
name = {'name':'老丁','age':18} #for循环遍历字典 #把字典里的(键,值)当元组反回 for temp in name.items(): print(temp) for temp in name.items(): print("key=%s value=%s"%(temp[0],temp[1])) # 运行结果 ('age', 18) ('name', '老丁') key=age value=18 key=name value=老丁
-
用列表生成新字典-fromkeys
a = ["name","age","addr"] b = 3 t = {} t = t.fromkeys(a,b) #b可写可不写 a必须是列表 print(t) # 运行结果 {'age': 3, 'name': 3, 'addr': 3}
-
如果key在字典中,返回对应的值。如果不在字典中,则插入key及设置的默认值default,并返回default,default默认值为None-setdefault
dict = {'Name': 'Runoob', 'Age': 7} #如果 key 在 字典中,返回对应的值。如果不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。 print ("Age 键的值为 : %s" % dict.setdefault('Age', None)) print ("Sex 键的值为 : %s" % dict.setdefault('Sex', None)) print ("新字典为:", dict) # 运行结果 Age 键的值为 : 7 Sex 键的值为 : None 新字典为: {'Name': 'Runoob', 'Age': 7, 'Sex': None}
-
把字典键值对删除反回一个键值对的元组-popitem
t = {"name":"laowang","age":18,"addr":"山东"} r = t.popitem() #把字典键值对删除反回一个键值对的元组 t不能为空 print(t) print(r) # 运行结果 {'addr': '山东', 'age': 18} ('name', 'laowang')
-
把一个字典元素添加到另一个字典中-update
a = {"name":"laownag","age":18} b = {"addr":"山东"} a.update(b) #把一个字典元素添加到另一个字典中 如果键值有重复,则 b 的内容更新替换到 a 中 print(a) # 运行结果 {'addr': '山东', 'age': 18, 'name': 'laownag'}