Python基础学习Day5 字典的增、删、改、查的用法 分别赋值

一、字典的介绍

字典:字典是Python的基础数据类型之一:字典可以存储大量数据,关系型数据。

          同样是Python中唯一的映射类数据类型。
         数据类型的分类:
        可变的数据类型:list,dic
        不可变的数据类型:str ,int ,bool,tuple
特点:
       键值对的形式存在,键:值
      字典的键必须是不可变的数据类型。(工作中:都是由 数字或者str组成)
     字典的值可以是任意数据类型


优点 :
       字典可以存储大量的数据,关系型数据。
       查询速度快

注意:
        python3.5之前包括3.5版本,字典是无序的。
       python3.6开始是有序的。

二、增

方法一:

dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
dic1['sex'] = ''
dic1['name'] = 'alex'   # 通过键去增或者改
dic1['job'] = 'it'
print(dic1)

方法二:

dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
dic1.setdefault('job','it')
dic1.setdefault('name', 'alex')
print(dic1)
# setdefault 有次key则不做任何操作但是返回对应值,无此key则添加
结果为:
{'name': '太白', 'age': 25, 'sex': 'M', 'job': 'it'}

三、删

方法一:

dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
# pop 通过键去删除键值对,也返回值。
print(dic1.pop('name'))
print(dic1)
结果为:
太白

    {'age': 25, 'sex': 'M'}

  print(dic1.pop('name1', None)) # None 可以使任意内容

  print(dic1.pop('name1', '没有此键。。。'))

结果为:

None
没有此键。。。

方法二:

#clear   清空
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
dic1.clear()
print(dic1)
结果为:
{}

方法三:

# popitem  # 删最后一个3.6     随机删除3.5
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
print(dic1.popitem())
print(dic1)
结果为:

('sex', 'M')
{'name': '太白', 'age': 25}

方法四:

# del
# (1)  按照键去删除
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
del dic1['name']
print(dic1)
结果为:
{'age': 25, 'sex': 'M'}
 
# (2) 内存级别的删除字典
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'
del dic1
print(dic1)
结果为:
直接报错
# (1)两个字典 update
dic = {'name':'jim','age':18,'sex':'M'}
dic2 = {'name':'alex','weight':75}
dic.update(dic2)                     # 将dic2中的所有键值对覆盖并添加到dic中,dic2不变。
print(dic)
print(dic2)
结果为:
{'name': 'alex', 'age': 18, 'sex': 'M', 'weight': 75}
{'name': 'alex', 'weight': 75}

# (2) update  可以直接将字符串添加到列表
dic = {'name':'jim','age':18,'sex':'M'}
dic.update(a='333', b='666', name='taibai')
print(dic)
结果为:
{'name': 'taibai', 'age': 18, 'sex': 'M', 'a': '333', 'b': '666'}


四、改

方法一:

dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
dic1['sex'] = ''
dic1['name'] = 'alex'   # 通过键去增或者改
dic1['job'] = 'it'
print(dic1)

方法二:

# (1)两个字典 update
dic = {'name':'jim','age':18,'sex':'M'}
dic2 = {'name':'alex','weight':75}
dic.update(dic2)                     # 将dic2中的所有键值对覆盖并添加到dic中,dic2不变。
print(dic)
print(dic2)
结果为:
{'name': 'alex', 'age': 18, 'sex': 'M', 'weight': 75}
{'name': 'alex', 'weight': 75}

# (2) update  可以直接将字符串添加到列表
dic = {'name':'jim','age':18,'sex':'M'}
dic.update(a='333', b='666', name='taibai')
print(dic)
结果为:
{'name': 'taibai', 'age': 18, 'sex': 'M', 'a': '333', 'b': '666'}

五、查

方法一:

# 根据键去查
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'} print(dic1['name']) print(dic1['name1']) # 没有该键即直接报错

方法二:

# (2) get方法
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
print(dic1.get('name'))
print(dic1.get('name1'))
print(dic1.get('name1','没此键。。。'))    # 可以为任意值
结果为:
太白
None
没此键。。。

方法三:

# (3)key方法
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
print(dic1.keys(), type(dic1.keys()))   # 类似于列表的容器中
l1 = list(dic1.keys())                  # 可以转化成list
print(l1)
for key in dic1.keys():                  # 可以遍历(查看)
    print(key)
结果为:
dict_keys(['name', 'age', 'sex']) <class 'dict_keys'>

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

name
age
sex

方法四:

# (4)values方法
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
print(dic1.values())   # 可以转化成list ,可以遍历(查看)
print(list(dic1.values()))
结果为:
dict_values(['太白', 25, 'M'])
['太白', 25, 'M']

方法五:

# (4)items方法
dic1 = {'name': '太白', 'age': 25, 'sex': 'M'}
print(dic1.items())        # 可以转化为list ,可遍历(查看)
print(list(dic1.items()))
for k, v in dic1.items():
     print(k, v)              # 分别赋值
结果为:
dict_items([('name', '太白'), ('age', 25), ('sex', 'M')])
[('name', '太白'), ('age', 25), ('sex', 'M')]
name 太白
age 25
sex M

六、分别赋值

# 分别赋值     # 面试题
a , b = 10,20
a ,b = b,a
print(a,b)

结果为:
 20 10
原文地址:https://www.cnblogs.com/youhongliang/p/9443938.html