Python-字典

目录:https://www.jianshu.com/p/863c446364a8

一、字典

1、字典是另一种可变容器模型,且可存储任意类型对象。字典的键与值 用冒号分割,每个键值对之间用逗号分割,创建一个字典用{}建立。

dict1={key1:values,keys2:values,......}

需要注意的是:

键是唯一的,只能是不可变数据类型,数字、字符串、元组。如果重复键的话,最后的一个键值对会替换前面的。

值不唯一,可以是任意数据类型。

>>> dict1={"a":1,"b":2,"b":3}

>>> dict1

{'a': 1, 'b': 3}                 

创建一个空字典:

dict1={}

或者

d=dict()

二、字典的基础操作

>>> dict1={"name":"xt","age":20}

>>> dict1["sex"]="female"

>>> dict1

{'name': 'xt', 'age': 20, 'sex': 'female'}

# del  删除字典指定键值对

>>> dict1={'name': 'xt', 'age': 20, 'sex': 'female'}

>>> del dict1["age"]

>>> dict1

{'name': 'xt', 'sex': 'female'}

#pop() 删除字典指定键值对 ,并返回该键对应的值

>>> dict1={'name': 'xt', 'sex': 'female'}

>>> print(dict1.pop("sex"))

female

>>> print(dict1)

{'name': 'xt'}

#popitem 随机删除字典的键值对,并以元组方式输出返回值

 >>> dict1={'name': 'xt', 'age': 20, 'sex': 'female'}

 >>> print(dict1.popitem()) 

('sex', 'female')  

>>> print(dict1)

 {'name': 'xt', 'age': 20} 

#clear() 清空字典

>>> dict1={'name': 'xt', 'age': 20, 'sex': 'female'} 

>>> dict1.clear()

 >>> print(dict1) 

{}  

#del 删除整个字典

>>> dict1={'name': 'xt', 'age': 20, 'sex': 'female'}

 >>> del dict1 

>>> dict1         #此时在查看dict1时会报错,因为dict1已被删除,dict1不存在了。

>>> dict1={'name': 'xt', 'age': 20}

>>> dict1["age"]=22

>>> print(dict1)

{'name': 'xt', 'age': 22}

#查看字典所有元素

>>> dict1={'name': 'xt', 'age': 20, 'sex': 'female'}

>>> print(dict1)

{'name': 'xt', 'age': 20, 'sex': 'female'}

#查看某个键值对

>>> dict1={'name': 'xt', 'age': 20, 'sex': 'female'}

>>> print(dict1["age"])

20

#查看字典所有的key值

>>> dict1={'name': 'xt', 'age': 20, 'sex': 'female'}

>>> print(dict1.keys())

dict_keys(['name', 'age', 'sex'])       

#同理,我们也可以查看字典所有的value值

>>> print(dict1.values())

dict_values(['xt', 20, 'female'])

#这两个函数的结果分别是dict_keys([])和dict_values([]),他们是字典自带的两种数据类型,只能进行遍历操作,我们需要做其他操作时,我们就需要将他专成list()类型或者set()类型。

>>> print(list(dict1.keys()))

['name', 'age', 'sex']

>>> print(set(dict1.keys()))

{'sex', 'name', 'age'}

#dict1.values同理。

#查看字典所有的key-value值

>>> print(list(dict1.items()))

[('name', 'xt'), ('age', 20), ('sex', 'female')]                    #将key-values对以元组的形式输出

三、字典的内置函数

(1)# len()    计算字典元素个数,即键的总数。

dict1={'name': 'xt', 'age': 20}

>>> print(len(dict1))

2

(2)# get () 函数返回指定键的值,如果值不在字典中返回默认值。

dict1={'name': 'xt', 'age': 20}

#键存在,不改动,返回字典中相应的键对应的值

>>> dict1.get("age",22)

20

#键不存在,返回默认值

>>> dict1.get("sex","female")

'female'

>>>dict1

{'name': 'xt', 'age': 20}               #键不存在时,返回默认值,但不修改字典

(3)# setdefault()  和get()类似, 如果键不存在于字典中,将会添加键并将值设为默认值。

>>>dict1={'name': 'xt', 'age': 20}

#键存在,不改动,返回字典中相应的键对应的值

>>> dict1.setdefault("age",22)

20

#键不存在,在字典中中增加新的键值对,并返回相应的值

>>> dict1={'name': 'xt', 'age': 20}

>>> dict1.setdefault("sex","female")

'female'

>>> dict1

{'name': 'xt', 'age': 20, 'sex': 'female'}

(4)#copy()   返回一个字典的浅复制

>>> dict2= {'user':'runoob','num':[1,2,3]}

>>> dict3=dict2.copy()

>>> dict3

{'user': 'runoob', 'num': [1, 2, 3]}

(5) #  fromkeys()  用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

>>>x=('name','age','sex') 

#不指定值

>>>dict1=dict.fromkeys(x)

>>>print(dict1)

{'age':None,'name':None,'sex':None}  

 #指定值

dict1=dict.fromkeys(x,10)

>>>print(dict1)

{'age':10,'name':10,'sex':10}        

(6)  #update()   连接dict1和dict2

>>>dict1= {'Name':'xt','Age':20} 

>>>dict2= {'Sex':'female'} 

>>>dict1.update(dict2)

>>>print(dict1)

{'Name':'hx','Age':20,'Sex':'female'}

(7)key in dict    如果键在字典dict里返回true,否则返回false

>>> dict1= {'Name':'xt','Age':20}

>>> print("Name" in dict1)

True

>>> print("Sex" in dict1)

False

(8) key not in dict  如果键不在字典dict里返回true,否则返回false

>>> dict1= {'Name':'xt','Age':20}

>>> print("Name" in dict1)

False

>>> print("Sex" in dict1)

True

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342