python字典的操作

'''
                                         python字典操作
字典:(1)花括号定义的,
(2)python内置的数据结构之一,与列表一样是一个可变序列
(3)以键值对(冒号前的叫键,冒号后的叫值)的方式存储数据,字典是一个无序的序列,即是通过       hash()函数计算而来(
4)元素之前用逗号分隔
(5)键具有唯一性,不可重复。当键重复的时候不会报错,而是左边的键会被右边的键所覆盖
字典实现原理: 类似于查字典,不过python中的字典是根据key查找value所在的位置  通过hash(key) 找到这个key的值

.字典的创建

1.最常用的方式:使用花括号
    eg:
        sheng = { 9:98 , "李四":97 , "王五":96 , ......}

2.使用内置函数dict()
    eg:
        sheng = dict(name='jick',age=20)  #注意 这里创建是用的等号

3.创建空字典
    eg:
        sheng = {}

.获取字典中的元素

1.使用[key]
    语法格式: 字典名[key]
        eg:
            sheng = {"张三":98,"李四":97,"王五":96,"铁牛":95}
            print(sheng["张三"])
        输出为:98

2.使用get()方法
    语法格式: 字典名.get(key)
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print(sheng.get('name'))

3.俩种方法的区别
####使用第一种方法获取字典中的元素,如果没有这个键,会报错KeyError。
####使用第二种方法获取字典中的元素,如果没有这个键,不会报错,而是显示None。

4.len(字典名)   # 将会返回字典子键的个数

.字典的增、删、改操作

1.判断字典中是否存在这个键
    语法格式1: key in 字典名
    语法格式2: key not in 字典名
    返回值是逻辑值true 或者 false

2.删除字典中元素
    语法格式: del 字典名[key]
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print("原字典内容:",sheng)
            del sheng["gender"]
            print("删除后的内容:",sheng)
        输出: 原字典内容: {'name': '圣', 'age': 20, 'gender': '男'}
              删除后的内容: {'name': '圣', 'age': 20}

3.清空字典中元素
    语法格式: 字典名.clear()

4.新增字典中元素
    语法格式: 字典名[key] = 值
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print("原字典内容:",sheng)
            sheng["xingbie"] = "nv"
            print("新增后的内容",sheng)
        输出: 原字典内容: {'name': '圣', 'age': 20, 'gender': '男'}
             新增后的内容 {'name': '圣', 'age': 20, 'gender': '男', 'xingbie': 'nv'}

5.修改字典中键的值
    语法格式: 字典名[key] = 值
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print("原字典内容:",sheng)
            sheng["name"] = "潘"
            print("修改后的字典内容:",sheng)
        输出为: 原字典内容: {'name': '圣', 'age': 20, 'gender': '男'}
                修改后的字典内容: {'name': '潘', 'age': 20, 'gender': '男'}

6.更新字典内容
    语法格式: 字典名1.update(字典名2)    ## 将字典名2 中的元素添加到字典名1 中,如果key相同则会被字典名2 中的覆盖
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print(sheng)
            shu = dict(name="冷",年龄=19,性别="男")
            sheng.update(shu)
            print(sheng)
            print(shu)
        输出:    {'name': '圣', 'age': 20, 'gender': '男'}
                {'name': '冷', 'age': 20, 'gender': '男', '年龄': 19, '性别': '男'}
                {'name': '冷', '年龄': 19, '性别': '男'}

.获取字典视图的方法

1.获取字典中的键
    语法格式: 字典名.keys()
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print(sheng.keys())
        输出:  dict_keys(['name', 'age', 'gender'])
#### 还可以将字典视图转换成列表:先将获取的键存放到一个变量,然后再list(变量).
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print(sheng.keys())
            shu = sheng.keys()
            print(list(shu))
        输出: dict_keys(['name', 'age', 'gender'])
              ['name', 'age', 'gender']

2.获取字典中所有的值
    语法格式: 字典名.values()
        eg: sheng = dict(name="圣",age=20,gender="男")
            print(sheng.values())
####依然也可以将值转换成列表,
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print(sheng.values())
            shu = sheng.values()
            print(list(shu))

3.获取字典里的键和值
    语法格式: 字典名.itmes()
        eg:
            sheng = dict(name="圣",age=20,gender="男")
            print(sheng.items())
        输出:  dict_items([('name', '圣'), ('age', 20), ('gender', '男')])
########依然也可以将值转换成列表
    eg:
        sheng = dict(name="圣",age=20,gender="男")
        print(sheng.items())
        shu = sheng.items()
        print(list(shu))
    输出: dict_items([('name', '圣'), ('age', 20), ('gender', '男')])
         [('name', '圣'), ('age', 20), ('gender', '男')]

.字典元素的遍历(通过for in 循环来操作)
    eg :
            sheng = dict(name="圣",age=20,gender="男")
            for i in sheng.items():   ##如果in后面只是一个字典名  那么将只会输出字典中所有的键
                print(i)
    输出:('name', '圣')
        ('age', 20)
        ('gender', '男')

.字典生成式(两个列表:一个列表作为键,另一个列表作为值)
通过zip()函数对两个列表进行打包
    语法格式: {item.upper:price for item,price in zip(列表1,列表2)}    ## item后面的.upper()是将键转成为英文大写
        eg:
            a = ["姓名","xingbie","nianling"]
            b = ["sheng","男",20]
            c = {item.upper():price for item,price in zip(a,b)}
            print(c)

        输出: {'姓名': 'sheng', 'XINGBIE': '男', 'NIANLING': 20}

'''

你可能感兴趣的:(python,python)