zoukankan      html  css  js  c++  java
  • python学习之【第六篇】:Python中的字典及其所具有的方法

    1.前言

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,因此,字典的key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

    字典的键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    2.定义字典

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中

    dic = { 'name' : 'nanliangrexue','age':18}
    print(dic)
    #输出
    {'name': 'nanliangrexue', 'age': 18}
    

    3.字典的增删改查

    给原有的字典增加新的键值对

    dic = { 'name' : 'nanliangrexue','age':18}
    dic['gender'] = 'male'
    print(dic)
    #输出
    {'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
    

    • del:删除字典中的某个键值对
    dic = { 'name' : 'nanliangrexue','age':18}
    del dic['age']
    print(dic)
    #输出
    {'name': 'nanliangrexue'}
    
    • pop():删除字典中的某个键值对,并返回被删除的键值对
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dic.pop('age'))
    print(dic)
    #输出
    18
    {'name': 'nanliangrexue'}
    
    • popitem():随机删除字典中的一对键和值并以元组形式返回被删除的键值对
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dic.popitem())
    print(dic)
    #输出
    ('age', 18)
    {'name': 'nanliangrexue'}
    
    • 删除整个字典
    dic = { 'name' : 'nanliangrexue','age':18}
    del dic
    print(dic)
    #输出报错,因为字典已经被删除
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'dic' is not defined
    
    • clear():清空字典
    dic = { 'name' : 'nanliangrexue','age':18}
    dic.clear()
    print(dic)
    #输出
    {}
    

    要修改字典中已有键/值对,只需给要修改的键值对的键值重新赋值即可

    dic = { 'name' : 'nanliangrexue','age':18}
    dic['age'] = 28
    print(dic)
    #输出
    {'name': 'nanliangrexue', 'age': 28}
    

    • 按键值key查找,如果查找不到会报错
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dic['name'])
    print(dic['age'])
    print(dic['gender'])
    #输出
    'nanliangrexue'
    18
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'gender'
    
    • get查找,如果查找不到会返回None,不会报错
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dic.get('name'))
    print(dic.get('age'))
    print(dic.get('gender'))
    #输出
    'nanliangrexue'
    18
    None
    

    4.字典的方法

    • dict.fromkeys(键,值)
      创建一个新字典,键必须是可迭代的数据类型(列表,元祖,字符串,集合,字典),值就是每个键值对中默认的值
    dict1 = dict.fromkeys([1,2,3],'china')
    dict2 = dict.fromkeys('name','china')
    print(dict1)
    print(dict2)
    #输出
    {1: 'china', 2: 'china', 3: 'china'}
    {'n': 'china', 'a': 'china', 'm': 'china', 'e': 'china'}
    
    • dict.get(key, default=None)
      返回指定键的值,如果值不在字典中返回default值
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dic.get('name'))
    print(dic.get('gender'))
    print(dic.get('gender','您所查找的键值不存在!'))
    #输出
    'nanliangrexue'
    None
    '您所查找的键值不存在!'
    
    • dict.items()
      以列表形式返回可遍历的(键, 值) 元组数组
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dict1.items())
    #输出
    dict_items([(1, 'china'), (2, 'china'), (3, 'china')])
    
    • dict.keys()
      以列表形式返回字典中所有的键
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dict1.keys())
    #输出
    dict_keys([1, 2, 3])
    
    • dict.setdefault(key, default=None)
      和get()类似,也是查找指定键的值, 但如果查找的键不存在于字典中,将会添加键并将值设为default
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dic.setdefault('name'))
    print(dic.setdefault('gender','male'))
    print(dic)
    #输出
    'nanliangrexue'
    'male'
    {'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
    
    • dict.update(dict2)
      把字典dict2的键值对增加到dict1里,即就是把dict1和dict2合并成一个字典
    dic1 = { 'name' : 'nanliangrexue','age':18}
    dic2 = { 'gender' : 'male'}
    dic1.update(dic2)
    print(dic1)
    #输出
    {'name': 'nanliangrexue', 'age': 18, 'gender': 'male'}
    
    • dict.values()
      以列表形式返回字典中的所有值
    dic = { 'name' : 'nanliangrexue','age':18}
    print(dic.values())
    #输出
    dict_values(['nanliangrexue', 18])
    

    5.字典的遍历

    • 遍历字典的key
    dic = { 'name' : 'nanliangrexue','age':18}
    for key in dic.keys():
    	print(key)
    #输出
    'name'
    'age'
    
    • 遍历字典中的value
    dic = { 'name' : 'nanliangrexue','age':18}
    for value in dic.values():
    	print(value)
    #输出
    'nanliangrexue'
    18
    
    • 同时遍历字典中的key和value,以元组形式返回
    dic = { 'name' : 'nanliangrexue','age':18}
    for item in dic.items():
    	print(item)
    #输出
    ('name', 'nanliangrexue')
    ('age', 18)
    
  • 相关阅读:
    Python os.getcwd()方法
    Python os.walk()方法
    PyTorch 模型构造
    Python map()函数
    字符串转数字测试--知识备忘
    如何判断一个变量是数组Array类型--实例--加个人见解
    js面试题
    ios学习笔记
    读取图片文件--实例
    名言记录
  • 原文地址:https://www.cnblogs.com/wangjiachen666/p/9610290.html
Copyright © 2011-2022 走看看