Python全栈__字典及其操作

1、字典  字典,基础数据类型之一,{}以键值对的形式存储数据。  以key : value 形式存储数据。例如,name 为 key,Laonanhai 为 value。
dic = {'name': 'Laonanhai',
        'age': 45,
       'name_list': ['反面教材', '俊俊', ...]
       }
   Python中唯一的映射类型。用以存储大量的关系型数据。  数据类型的分类:    可变类:      可变(不可哈希hash):list、dict、set。例如list = [11, 222, 333]      不可变(可哈希hash):str、int、tuple、bool。例如name = 'alex'    容器类:      容器类的数据类型:list、dict、tuple。例如l1 = [11, True, 'alex', [22, 33, 44]]      非容器类的数据类型:int、str、bool。例如s1 = '[11, 22, 33]'  字典的key必须是不可变的数据类型,是唯一的。  hash算法:    字典的键key通过hash表转换为数字,采用二分查找查询数字。  字典的value可以使任意的数据类型。  字典的查询速度非常快,可以存储大量的关系型数据。  字典在Python 3.5 包含3.5之前都是无序的,但在3.6之后是有序的。2、字典的增删改查及其他操作  键唯一  当存在一样的键时后面的覆盖前边的。例如:
dic = {
        'name': 'alex',
        'name': 'WuSir'
}
print(dic)
    键必须是不可变的可哈希的数据类型。当键为可变的不可哈希的数据类型是,输出提示错误。例如:
dic = {
        'name': 'alex',
        [1, 2, 3]: 'value'
}
print(dic)
    2、1 增  1、__['A'] = 'B'  A为键,B为值。直接增加,有则覆盖,无则添加。    无则添加。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
dic['sex'] = 'Laddy_boy'
print(dic)
      有则覆盖。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
dic['name'] = 'alex'
print(dic)
    2、 __.setdefault('A','B')  A为键,B为值。  有责不变,无则添加。  无则添加。  当只添加A时,对应的B值默认为None。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
dic.setdefault('sex')
print(dic)
    无则添加。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
dic.setdefault('sex','Laddyboy')
print(dic)
    有责不变。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
dic.setdefault('name', 'alex')
print(dic)
    2、2 删    1、__.pop('A')  有返回值,返回的是键对应的值。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
print(dic.pop(‘age’))
print(dic)
    当没有此键时,可修改默认返回值。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
print(dic.pop('age1', '没有此键...'))
print(dic)
     2、__.clear()  清空字典。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
dic.clear()
print(dic)
      3、__.popitem()  随机删除,有返回值,返回值为元组,里面是删除的键值对。  在Python 3.5及包含3.5之前是无序删除,Python 3.6 以后是删除字典最后一位。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
print(dic.popitem())
print(dic)
      4、del      (1)del __  删除整个字典。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
del dic
print(dic)
        (2)del dic['A']  按照键A删除对应的键值对。
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
del dic['name']
print(dic)
    2、3 改    1、__['A'] = 'B'  有则覆盖,没有则添加。 
dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}
dic['name'] = 'Alex'
print(dic)
        2、A.update(B)  AB分别为两个字典。两个字典的更新。  将B字典的内容覆盖添加到A里面,B不变。
dic = {"name": "jin", "age": 18, "sex": "male"}
dic2 = {"name": "alex", "weight": 75}
dic2.update(dic)
print(dic)
print(dic2)
    2、4 查    1、__['A"]  A为键。
dic = {"name": "jin", "age": 18, "sex": "male"}
print(dic['name'])
    当字典中没有查找的键是,打印报错。
dic = {"name": "jin", "age": 18, "sex": "male"}
print(dic['name1'])
      2、__.get('A')  A为键。
dic = {"name": "jin", "age": 18, "sex": "male"}
print(dic.get('name'))
    当查找的键字典里没有时,默认打印输出None。例如:
dic = {"name": "jin", "age": 18, "sex": "male"}
print(dic.get('name1'))
    当查找的键字典里面没有时,可将默认输出修改为自己需要的内容。例如:
dic = {"name": "jin", "age": 18, "sex": "male"}
print(dic.get('name1','SB,没有此键'))
      3、for循环  输出键。
dic = {"name": "jin", "age": 18, "sex": "male"}
for i in dic:
        print(i)
      4、__.keys()  打印输出的内容为键,打印输出的格式为 dict_keys
dic = {"name": "jin", "age": 18, "sex": "male"}
print(dic.keys(), type(dic.keys()))
      5、__.values()  打印输出的内容为值,打印输出的格式为dict_values。
dic = {"name": "jin", "age": 18, "sex": "male"}
print(dic.values(), type(dic.values()))
      6、__.items()  打印输出的内容为键值对,放在元组内。打印输出的格式为dict_items
dic = {"name": "jin", "age": 18, "sex": "male"}
print(dic.items(), type(dic.items()))
    使用for循环将键循环打印出来。
dic = {"name": "jin", "age": 18, "sex": "male"}
for key in dic.keys():
        print(key)
    将键转换成列表打印出来。
dic = {"name": "jin", "age": 18, "sex": "male"}
l_key = list(dic.keys())
print(l_key)
    使用for循环将值循环打印出来。
dic = {"name": "jin", "age": 18, "sex": "male"}
for i in dic.values():
        print(i)
    将输出转换成列表打印出来。
dic = {"name": "jin", "age": 18, "sex": "male"}
l_values = list(dic.values())
print(l_values)
    7、分别赋值概念
a, b = 1, 2
print(a, b)
  
a, b = ('alex', '34')
print(a, b)
  
a, b = ['alex', '34']
print(a,b)
    有如下:    a = 1    b = 3  用一行代码实现a b值互换。
a = 1
b = 3
a, b = b, a
print(a, b)
  
for i in [22, 33, 44]:
        print(i)
  
for i in [(11, 22), (33, 44), (55, 66)]:
        print(i)
  
k, v = ('name', '老男孩')
print(k, v)
  
dic = {"name": "jin", "age": 18, "sex": "male"}
for k, v in dic.items():
        print(k, v)
  3、字典的嵌套
dic = {
    'name_list': ['碗蓉', '俊俊', '爽妹'],
    'status': None,
    'personal_msg': {
        'name': '反面教材',
        'age': 25,
        'hobby_list': ['抽烟', '喝酒', '烫头'],
    }
}
   1、给dic添加一个键值对,学校:老男孩。
dic = {
    'name_list': ['碗蓉', '俊俊', '爽妹'],
    'status': None,
    'personal_msg': {
        'name': '反面教材',
        'age': 25,
        'hobby_list': ['抽烟', '喝酒', '烫头'],
    }
}
dic['学校'] = '老男孩'
print(dic)
    2、将status对应的值改为True。
dic = {
    'name_list': ['碗蓉', '俊俊', '爽妹'],
    'status': None,
    'personal_msg': {
        'name': '反面教材',
        'age': 25,
        'hobby_list': ['抽烟', '喝酒', '烫头'],
    }
}
dic['status'] = True
print(dic)
    3、给name_list追加一个元素‘平平’。
dic = {
    'name_list': ['碗蓉', '俊俊', '爽妹'],
    'status': None,
    'personal_msg': {
        'name': '反面教材',
        'age': 25,
        'hobby_list': ['抽烟', '喝酒', '烫头'],
    }
}
dic['name_list'].append('平平')
print(dic)
    4.给personal_msg对应的字典添加一个键值对sex:男。
dic = {
    'name_list': ['碗蓉', '俊俊', '爽妹'],
    'status': None,
    'personal_msg': {
        'name': '反面教材',
        'age': 25,
        'hobby_list': ['抽烟', '喝酒', '烫头'],
    }
}
dic['personal_msg']['sex'] = '男'
print(dic)
    5、将hobby_list对应的列表中的烫头改成唱歌。
dic = {
    'name_list': ['碗蓉', '俊俊', '爽妹'],
    'status': None,
    'personal_msg': {
        'name': '反面教材',
        'age': 25,
        'hobby_list': ['抽烟', '喝酒', '烫头'],
    }
}
dic['personal_msg']['hobby_list'][-1] = '唱歌'
print(dic)
  

相关内容推荐