python——字典

字典


第一种:借助key

  字典[key] = 'value'

  有则改,无则加(记得加引号)

dic = {'name':'太白','age':18,'sex':'男',}
dic['name'] = 'alex'
dic['job'] = 'IT'
dic,len(dic)
({'name': '太白', 'age': 18, 'sex': '男'}, 3)

第二种:setdefault()方法

  字典.setdafault('key','value')

   有则不做任何操作,返回对应的值;无则加

dic = {'name':'太白','age':18,'sex':'男',}
print(dic,dic.setdefault('name','alex'))
dic.setdefault('job')
dic.setdefault('hobby','driving')
dic.setdefault(1,{'color':'black'})
print(dic)

{'name': '太白', 'age': 18, 'sex': '男'} 太白
{'name': '太白', 'age': 18, 'sex': '男', 'job': None, 'hobby': 'driving', 1: {'color': 'black'}}


第一种:pop()方法

  字典.pop('key','提示语')

  根据key去删除,若有,则删;若无,pop中若设置了第二个参数,则返回第二个参数,若无,则报错,一次仅能删除一个元素

dic = {'name':'太白','age':18,'sex':'男'}
print(dic,dic.pop('name'))
print(dic,dic.pop('name1','无此值'))
dic.pop('name2')

{'age': 18, 'sex': '男'} 太白
{'age': 18, 'sex': '男'} 无此值



---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-12-a148355758b0> in <module>()
      3 
      4 print(dic,dic.pop('name1','无此值'))
----> 5 dic.pop('name2')


KeyError: 'name2'

第二种:popitem()方法

  字典.popitem()
  python3.5之前随机删除一个键值对,3.6之后默认删除最后一个键值对.pop中仅有一个参数

dic = {'name':'太白','age':18,'sex':'男'}
dic.popitem()
dic
# dic.popitem(1)

{'name': '太白', 'age': 18}

第三种:del方法

  del 字典[key]
  按照键删除键值对,一次只能删除一个元素。del dic可从内存级别删除字典

dic = {'name':'太白','age':18,'sex':'男'}
del dic['name']
print(dic)
del dic
dic
{'age': 18, 'sex': '男'}



---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-15-34f1c6d1c059> in <module>()
      3 print(dic)
      4 del dic
----> 5 dic


NameError: name 'dic' is not defined

第四种:clear方法

  字典.clear
  清空字典

dic = {'name':'太白','age':18,'sex':'男'}
dic.clear()
dic
{}


第一种:通过键赋值

  字典[key] = value
  增的第一种方法,若有则改,若无则加

dic = {'name':'太白','age':18,'sex':'男'}
dic['name'] = 'alex'
dic['job'] = 6
dic
{'name': 'alex', 'age': 18, 'sex': '男', 'job': 6}

第二种:update方法

  字典1.update(字典2)
  将字典2中的所有键值对覆盖添加到字典1中,字典2不变

dic = {'name':'太白','age':18,'sex':'男'}
dic2 = {'name':'alex','job':'it','hobby':'driving'}
dic.update(dic2)
print(dic,dic2)
dic3 = {'name':'wusir','age': 20}
dic4 = {'fisrt':'yang','weight':70}
dic3.update(dic4)
dic3,dic4
{'name': 'alex', 'age': 18, 'sex': '男', 'job': 'it', 'hobby': 'driving'} {'name': 'alex', 'job': 'it', 'hobby': 'driving'}





({'name': 'wusir', 'age': 20, 'fisrt': 'yang', 'weight': 70},
 {'fisrt': 'yang', 'weight': 70})

update()还可以直接改字典一中的内容,格式为
字典一.update(key = value))
但需要注意的是,此时的key必须是字典一中所包含的key,而且不可以加引号

dic = {'name':'太白','age':18,'sex':'男'}
dic.update(name = 'yang')
dic
{'name': 'yang', 'age': 18, 'sex': '男'}

查:


第一种:字典[key]

  若无报错

dic = {'name':'太白','age':18,'sex':'男'}
a = dic['name']
print(a)
b = dic['job']
太白



---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-33-155bc2950dc5> in <module>()
      2 a = dic['name']
      3 print(a)
----> 4 b = dic['job']


KeyError: 'job'

第二种:get方法

  字典.get(key,'提示信息')
  若有,则返回value值,若无,若设置第二个参数,返回第二个参数,否则返回none

dic = {'name':'太白','age':18,'sex':'男'}
print(dic.get('name'))
print(dic.get('name1','无此值'))
print(dic.get('name2'))
太白
无此值
None

dic.keys()  dic.values()  dic.items()

  可遍历,可转list

dic = {'name':'太白','age':18,'sex':'男'}
print(dic.keys(),type(dic.keys()))
l1 = list(dic.keys())
print(l1,type(l1))
dict_keys(['name', 'age', 'sex']) <class 'dict_keys'>
['name', 'age', 'sex'] <class 'list'>
dic = {'name':'太白','age':18,'sex':'男','job':'IT'}
for i in dic.keys():
    print(i)
name
age
sex
job

分别赋值

a = 10
b = 20
a,b = b,a
a,b
(20, 10)
dic = {'name':'太白','age':18,'sex':'男','job':'IT'}
for i,j in dic.items():
    print(i,j)
name 太白
age 18
sex 男
job IT

小练习

dic = {'name_list': ['王双', 'alex', '孙飞', 'taibai'],
       1: {'name': 'taibai', 'age': 18, 'sex': '男'},
       (1, 2): [100, {'ip': '192.168.1.1', 'port': 3306}]
       }
# 1,给 name_list对应的列表追加一个值: 司徒大人.

dic['name_list'].append('司徒大人')
dic

# 2,将name_lsit对应的alex 变成全部大写.

dic['name_list'][1] = dic['name_list'][1].upper()
dic

# 3, 将1对应的字典添加一个键值对: weight : 75

dic[1]['wight'] = 75
dic

# 4,将1 对应的字典的name键对应的名字taibai 换成alex

dic[1]['name'] = 'alex'
dic

# 5,将 {'ip': '192.168.1.1', 'port': 3306} 次字典的port键值对删除.

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

推荐阅读更多精彩内容

  • 先来安利一下:字典的键必须是可哈希的。(通俗理解就是不可变的,比如,int,str,tuple.因为这样就可以将你...
    小学弟_阅读 660评论 0 0
  • 本篇将介绍Python里面的字典,更多内容请参考:Python学习指南 Python是什么? Python内置了字...
    小七奇奇阅读 1,428评论 0 5
  • 一、字典基本操作 基本语法:dict = {'ob1':'computer', 'ob2':'mouse', 'o...
    古佛青灯度流年阅读 2,634评论 0 1
  • 增、删、改、查 1.修改列表元素 通过下标获取元素,然后重新赋值: 列表名[下标] = 新的值注意: 这儿的下标不...
    PIECE_MAN阅读 278评论 0 4
  • 生命是一场不归途 列车上的我们 不能奢求得太多 就像睡觉与看风景 你只能二取一 然后随着车子继续向前走
    伍月的晴空阅读 182评论 6 1