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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

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