字典里面可创建无数的信息,跟列表不一样的是,字典中存在key与value的一对一关系,一个key对应这一个value。
#简单实例
alien_0={'color':'green','point':5}
print(alien_0['color'])#-->green
print(alien_0['point'])#-->5
print(alien_0)#-->{'color':'green','point':5}
#正确实例
color=5
alien_0={color:'green','point':5}
alien_0={5:'green','point':5}
#错误实例
alien_0={col:'green','point':5}#前面没有定义col,会报错
color={5:4}
alien_0={color:'green','point':5}#unhashable type: 'dict'报错
#由此表明字典中的Key值是一个可哈希的类型
#不过value值就没有什么限制,但是同样不能是一个未定义的毫无意义的东西
#它可以是字典,字符串,布尔值,列表,元组等
alien_0={'color':green,'point':5}#前面没有定义green,会报错
通过实例可以看见,我们创建一个字典是通过{}的,在{}中的:左边的为key,右边的为value,注意key值不能向JS中的对象一样随便写一个原本不存在的没有意义的东西
-
访问字典元素、
访问字典元素跟列表稍有不同,列表是根据其索引值即0-末尾,但是字典是通过key值进行访问并操作的alien_0={'color':'green','point':5} print(alien_0['color'])#-->green color=alien_0['color']#使用一个变量保存并输出 print(color)#-->green
-
获取字典形成列表
alien_0={'color':'green','point':5} #得到key值列表 keys=alien_0.keys() print(keys)#-->dict_keys(['color', 'point']) #但这不是一个列表,我们可以进行转化 keys=list(alien_0.keys()) print(keys)#-->['color', 'point'] #得到value值列表 values=alien_0.values() print(values)#-->dict_values(['green', '5]) #但这不是一个列表,我们可以进行转化 values=list(alien_0.values()) print(values)#-->['green', '5] #得到每一项值列表 items=list(alien_0.items()) print(items)#-->[('color', 'green'), ('point', 5)] #列表中每一项存储的是一个元组 #额外 if 'green' in alien_0: print('True') else: print('False') #-->False if 'color' in alien_0: print('True') else: print('False') #-->True #以上跟列表中判断元素是否存在一样,可见alien_0只包含key值,而value不能,应该是alien_0是根据key值的得到的数据才不行 #不过转化为这种可以了 f 'green' in alien_0.values(): print('True') else: print('False') #-->True
-
添加键值对
因为是根据key值访问的,所以我们添加时必须考虑key值,然后给该key值赋予一个对应的元素alien_0={'color':'green','point':5} print(alien_0['color'])#-->green alien_0['x_pos']=0 alien_0['y_pos']=25 #以上就添加了两个元素 print(alien_0['x_pos'])#-->0 print(alien_0['y_pos'])#-->25 print(alien_0)#-->{'color':'green','point':5,'x_pos':0,'y_pos':25}
-
修改键值
因为是根据Key值访问的,因此我们可以先访问到对应的key值,然后进行修改,改变其所储存的值alien_0={'color':'green','point':5} alien_0['point']=100 print(alien_0['point'])#-->100 print(alien_0)#-->{'color':'green','point':100} if alien_0['color'] == 'green': print('True')#-->True
-
查询字典
alien_0={'color':'green','point':5} print(alien_0)#-->{'color':'green','point':5} print(alien_0["color"])#-->green print(alien_0.get("point")) #有就返回它的值,没有就为None print("color" in alien_0) #判断一个键是否在一个字典里面,有就True没有就False
-
删除键值对
实例alien_0={'color':'green','point':5} print(alien_0)#-->{'color':'green','point':5} del alien_0['color']#访问值,然后释放空间 print(alien_0)#-->{'point':5} alien_0.pop("color") #弹出 print(alien_0)#-->{'point':5} test1 = alien_0.popitem()#弹出最后一个,形成一个元组 print(test1)#-->('point',5)
-
遍历字典
我觉得这里比较难记一点,得多练习
(1)遍历所有键值对alien_0={'color':'green','point':5} for key,value in alien_0.items(): print('key:'+key) print('value:'+str(value)) #这里有一个麻烦的地方就是'point':5值为数组 #不能与字符串直接连接,因此我们改变加了一个转化为字符串的函数str() #-->key:color #-->value:green #-->key:point #-->value:5
(2)遍历所有键
alien_0={'color':'green','point':5} for key in alien_0.keys(): print('key:'+key) #-->key:color #-->key:point
(3)遍历所有值
alien_0={'color':'green','point':5} for value in alien_0.values(): print('value:'+value) #-->value:green #-->value:5
-
嵌套
列表中嵌套字典alien_0={'color':'green','point':5} alien_1={'color':'white','point':10} alien_2={'color':'blank','point':15} aliens=[alien_0,alien_1,alien_2] print(aliens) #-->[{'color':'green','point':5},{'color':'white','point':10},{'color':'blank','point':15}] newAligen=aliens[2]#访问元素 print(newAligen)#-->{'color':'blank','point':15}
字典中嵌套列表
aliens={'colors':['green','white','blank'],'point':5} print(aliens) #-->{'colors':[green,white,blank],'point':5} colors=aliens['colors']#访问元素 print(colors[0])#-->green
字典中存储字典
user_0={'nickname':'小白龙马','sex':'男'} user_1={'nickname':'白马','sex':'女'} users={"user_0":user_0,'user_1':user_1} print(users['user_0'])#-->{'nickname':'小白龙马','sex':'男'}
遍历访问
user_0={'nickname':'小白龙马','sex':'男'} user_1={'nickname':'白马','sex':'女'} users={"user_0":user_0,'user_1':user_1} for user,userinfo in users.items():#user为kEY值,userinfo为用户信息值 print('用户:'+user) print('用户姓名:'+userinfo['nickname']) #-->用户:user_0 #-->用户姓名:小白龙马 #-->用户:user_1 #-->用户姓名:白马
(写的有点乱)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。