欢迎光临散文网 会员登陆 & 注册

第七章 组合数据-4字典Dictionary

2023-07-06 16:33 作者:wangyanhpa  | 我要投稿

字典可存储任意类型对象。字典的每个键值对 key=>value用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,举例如下所示:

dict = {'Name': 'AJ', 'Age': 7, 'Class': 'Miss daisy'}

print(dict['Name'],dict['Age'],dict['Class'])             #AJ 7 Miss daisy

print(dict)                                       #{'Name': 'AJ', 'Age': 7, 'Class': 'Miss daisy'}

dict['Age'] = 8                                   # 更新

dict['School'] = "CUP"                             # 添加

print(dict)                         # {'Name': 'AJ', 'Age': 8, 'Class': 'Miss daisy', 'School': 'CUP'}

del dict['Name']                  # 删除键是'Name'的条目

dict.clear()                       # 清空字典所有条目

del dict                         # 删除字典

 

字典内置函数
字典方法

dict1 = {'user': 'CISE', 'num': [6, 1, 4]}

dict2 = dict1         # 直接赋值,dict2是dict1引用

dict3 = dict1.copy()   # 浅拷贝

print(id(dict1),id(dict2),id(dict3))

# 修改 data 数据

dict1['user'] = 'CUP'

dict1['num'].remove(1)

# 输出结果

print(dict1)

print(dict2)

print(dict3)

运行结果如下:

{'user': 'CUP', 'num': [6, 4]}

{'user': 'CUP', 'num': [6, 4]}

{'user': 'CISE', 'num': [6, 4]}

实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象user-CISE进行了深拷贝,不会随dict1 修改而修改,子对象num-1是浅拷贝所以随 dict1 的修改而修改。

 

seq = ('CUP', 'CISE', '614')

dict = dict.fromkeys(seq)

print("新字典1为 : %s" %  str(dict))

print("字典值 : %s" %  dict.items())

dict2 = {'Address': '府学路18号' }

dict.update(dict2)

print("字典值 : %s" %  dict.items())

dict = dict.fromkeys(seq, [1,2,3])

print("新字典2为 : %s" %  str(dict))

print("Value : %s" %  dict.get('CUP'))

dict.pop('CISE')

pop_obj=dict.popitem()

print(pop_obj)

print(dict)

运行结果如下:

新字典1为 : {'CUP': None, 'CISE': None, '614': None}

字典值 : dict_items([('CUP', None), ('CISE', None), ('614', None)])

字典值 : dict_items([('CUP', None), ('CISE', None), ('614', None), ('Address', '府学路18号')])

新字典2为 : {'CUP': [1, 2, 3], 'CISE': [1, 2, 3], '614': [1, 2, 3]}

Value : [1, 2, 3]

('614', [1, 2, 3])

{'CUP': [1, 2, 3]}

 

参考例子:

stulist=[]

studisc1={"name":"wangyan","sex":"male","IQ":10}

stulist.append(studisc1)

studisc2={"name":"pp","sex":"female","IQ":300}

stulist.append(studisc2)

studisc3={"name":"aa","sex":"male","IQ":300}

stulist.append(studisc3)

studisc4={"name":"huishan","sex":"male","IQ":15}

stulist.append(studisc4)

findname=input("input name:")

find=False

for s in stulist:

    if s["name"]==findname:

        find=True

        print("找到了! Info:")

        print(s)

        break

if not find:

    print("sorry,没找到!")

print("查找结束")

 

运行结果:

input name:qq

sorry,没找到!

查找结束

 

也可以使用下面方法:

stulist=[]

studisc1={"name":"wangyan","sex":"male","IQ":10}

stulist.append(studisc1)

studisc2={"name":"pp","sex":"female","IQ":300}

stulist.append(studisc2)

studisc3={"name":"aa","sex":"male","IQ":300}

stulist.append(studisc3)

studisc4={"name":"huishan","sex":"male","IQ":15}

stulist.append(studisc4)

findname=input("input name:")

find=False

for s in stulist:

    if s["name"]==findname:

        find=True

        print("找到了! Info:")

        print(s)

        break

else:

    print("sorry,没找到!")

print("查找结束")

 

运行结果:

input name:aa

找到了! Info:

{'name': 'aa', 'sex': 'male', 'IQ': 300}

查找结束

 

还可以使用字典加列表试一下名片管理系统,有点不好说呢。

第七章 组合数据-4字典Dictionary的评论 (共 条)

分享到微博请遵守国家法律