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'}