最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python字典及详细的基本操作

    正文概述    2020-09-07   237

    python字典及详细的基本操作

    字典也是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。
    比如有份成绩表数据,语文:79,数学:80,英语:92,这组数据看上去像两个列表,但这两个列表的元素之间有一定的关联关系。如果单纯使用两个列表来保存这组数据,则无法记录两组数据之间的关联关系。
    为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。

    由于字典中的 key 是非常关键的数据,而且程序需要通过 key 来访问 value,因此字典中的 key 不允许重复。

    程序既可使用花括号语法来创建字典,也可使用 dict() 函数来创建字典。实际上,dict 是一种类型,它就是 Python 中的字典类型。

    在使用花括号语法创建字典时,花括号中应包含多个 key-value 对,key 与 value 之间用英文冒号隔开;多个 key-value 对之间用英文逗号隔开。

    如下代码示范了使用花括号语法创建字典:

    scores = {'语文': 89, '数学': 92, '英语': 93}
    print(scores)
    # 空的花括号代表空的dict
    empty_dict = {}
    print(empty_dict)
    # 使用元组作为dict的key
    dict2 = {(20, 30):'good', 30:'bad'}
    print(dict2)

    上面程序中第 1 行代码创建了一个简单的 dict,该 dict 的 key 是字符串,value 是整数;第 4 行代码使用花括号创建了一个空的字典;第 7 行代码创建的字典中第一个 key 是元组,第二个 key 是整数值,这都是合法的。

    需要指出的是,元组可以作为 dict 的 key,但列表不能作为元组的 key。这是由于 dict 要求 key 必须是不可变类型,但
    列表是可变类型,因此列表不能作为元组的 key。

    在使用 dict() 函数创建字典时,可以传入多个列表或元组参数作为 key-value 对,每个列表或元组将被当成一个 key-value 对,因此这些列表或元组都只能包含两个元素。例如如下代码:

    vegetables = [('celery', 1.58), ('brocoli', 1.29), ('lettuce', 2.19)]
    # 创建包含3组key-value对的字典
    dict3 = dict(vegetables)
    print(dict3) # {'celery': 1.58, 'brocoli': 1.29, 'lettuce': 2.19}
    cars = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]]
    # 创建包含3组key-value对的字典
    dict4 = dict(cars)
    print(dict4) # {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}

    如果不为 dict() 函数传入任何参数,则代表创建一个空的字典。例如如下代码:

    # 创建空的字典
    dict5 = dict()
    print(dict5) # {}

    还可通过为 dict 指定关键字参数创建字典,此时字典的 key 不允许使用表达式。例如如下代码:

    # 使用关键字参数来创建字典
    dict6 = dict(spinach = 1.39, cabbage = 2.59)
    print(dict6) # {'spinach': 1.39, 'cabbage': 2.59}

    上面粗体字代码在创建字典时,其 key 直接写 spinach、cabbage,不需要将它们放在引号中。

    字典的基本用法

    对于初学者而言,应牢记字典包含多个 key-value 对,而 key 是字典的关键数据,因此程序对字典的操作都是基于 key 的。基本操作如下:

    通过 key 访问 value 。

    通过 key 添加 key-value 对。

    通过 key 删除 key-value 对。

    通过 key 修改 key-value 对。

    通过 key 判断指定 key-value 对是否存在。

    通过 key 访问 value 使用的也是方括号语法,就像前面介绍的列表和元组一样,只是此时在方括号中放的是 key,而不是列表或元组中的索引。

    如下代码示范了通过 key 访问 value:

    scores = {'语文': 89}
    # 通过key访问value
    print(scores['语文'])

    如果要为 dict 添加 key-value 对,只需为不存在的 key 赋值即可:

    # 对不存在的key赋值,就是增加key-value对
    scores['数学'] = 93
    scores[92] = 5.7
    print(scores) # {'语文': 89, '数学': 93, 92: 5.7}

    如果要删除宇典中的 key-value 对,则可使用 del 语句。例如如下代码:

    # 使用del语句删除key-value对
    del scores['语文']
    del scores['数学']
    print(scores) # {92: 5.7}

    如果对 dict 中存在的 key-value 对赋值,新赋的 value 就会覆盖原有的 value,这样即可改变 dict 中的 key-value 对。例如如下代码:

    cars = {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}
    # 对存在的key-value对赋值,改变key-value对
    cars['BENS'] = 4.3
    cars['AUDI'] = 3.8
    print(cars) # {'BMW': 8.5, 'BENS': 4.3, 'AUDI': 3.8}

    如果要判断字典是否包含指定的 key,则可以使用 in 或 not in 运算符。需要指出的是,对于 dict 而言,in 或 not in 运算符都是基于 key 来判断的。例如如下代码:

    # 判断cars是否包含名为'AUDI'的key
    print('AUDI' in cars) # True
    # 判断cars是否包含名为'PORSCHE'的key
    print('PORSCHE' in cars) # False
    print('LAMBORGHINI' not in cars) # True

    通过上面介绍可以看出,字典的 key 是它的关键。换个角度来看,字典的 key 就相当于它的索引,只不过这些索引不一定是整数类型,字典的 key 可以是任意不可变类型。

    可以这样说,字典相当于索引是任意不可变类型的列表:而列表则相当于 key 只能是整数的字典。因此,如果程序中要使用的字典的 key 都是整数类型,则可考虑能否换成列表。

    此外,还有一点需要指出,列表的索引总是从 0 开始、连续增大的;但字典的索引即使是整数类型,也不需要从 0 开始,而且不需要连续。因此,列表不允许对不存在的索引赋值:但字典则允许直接对不存在的 key 赋值,这样就会为字典增加一个 key-value 对。


    下载网 » python字典及详细的基本操作

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元