zoukankan      html  css  js  c++  java
  • 3.22 day5 字典

    练习题

    dic = {"name_list":['张三','lisi','隔壁王叔叔'], 'dic2':{'name':'太白','age':12}, }

    #1 ,给列表追加一个元素:'旺旺'

    #2,给列表lisi全部大写

    #3,给dic2 对应的字典添加一个键值对:hobby:girl.

    dic = {"name_list":['张三','lisi','隔壁王叔叔'],'dic2':{'name':'太白','age':12}}
    
    dic['name_list'].append('旺旺') print(dic) dic['name_list'][1]= dic['name_list'][1].upper() print(dic) dic['dic2']['hobby']='girl' print(dic)

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

    字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    可以放任意数据类型

    数据类型的分类:

    可变(不可哈希):不可变数据类型 list,dic,set

      字典的值,不可变数据类型

    不可变(可哈希):对原字符串没有任何改变,都是新的字符串 int,True,bool,str,tuple。

      字典的键,是任意的数据类型

    容器类型

      容器:list,tuple,dic 可承载各种数据类型

    字典的键不能重复,是唯一的

    字典的顺序:

      python 3.5之前, 字典是无序的

      python 3.6开始,字典创建的时候,按照一定的顺序插入的数值,看起来是有序的,

    ----------------------------------------

    增:

    1.有则覆盖,无则添加

    dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
    
    dic['hobby'] = 'girl'
    print(dic)

    {'name': 'jin', 'k': 'v', 'hobby': 'girl', 'sex': 'male', 'age': 18}

    dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
    
    dic['k'] = 'a'
    print(dic)

    {'age': 18, 'name': 'jin', 'k': 'a', 'sex': 'male'}

    2.setdefault 无则添加,有则不变


    setdefault 在字典中添加键值对,如果只有键那对应的值是none,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。

    dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
    dic.setdefault('hobby')
    print(dic)

    {'sex': 'male', 'hobby': None, 'k': 'v', 'name': 'jin', 'age': 18}

      

    dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
    dic.setdefault('hobby','girl')
    print(dic)

    {'age': 18, 'name': 'jin', 'k': 'v', 'sex': 'male', 'hobby': 'girl'}

    1.pop:python3.6 里删除最后一个,成对删除,通过键删除键值对
    dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'} dic.pop('age') print(dic)

    {'name': 'jin', 'k': 'v', 'sex': 'male'}

    dic.pop('hobby')
    print(dic)

    报错
    print(dic.pop('hobby',None))


    不报错,又返回值None,返回你设定的值

    2.clear 清空

    dic.clear()
    print(dic)

    {}

    3.del dic['name']

    del dic['name']
    print(dic)

    {'k': 'v', 'age': 18, 'sex': 'male'}

    1.

    dic['name'] = '太白'
    print(dic)

    {'age': 18, 'name': '太白', 'sex': 'male', 'k': 'v'}

    2.针对两个字典改,将dic键值对覆盖并添加到dic2 update

    dic = {"name":"jin","age":18,"sex":"male"}
    dic2 = {"name":"alex","weight":75}
    
    dic2.update(dic)
    
    print(dic)
    print(dic2)

    {'sex': 'male', 'age': 18, 'name': 'jin'}
    {'weight': 75, 'sex': 'male', 'name': 'jin', 'age': 18}

    查 get,单个查询,for是多个查询

    dic = {"name":"jin","age":18,"sex":"male"}
    print(dic.get('name'))

    jin

    dic = {"name":"jin","age":18,"sex":"male"}
    print(dic.get('name1',None))

    dic = {"name":"jin","age":18,"sex":"male"}
    print(dic.get('name1'))不存在的默认返回none

    其他方法:keys():不是列表,可循环,不能有索引,values(),item()

    dic = {"name":"jin","age":18,"sex":"male"}
    print(dic.keys())
    print(type(dic.keys()))

    dict_keys(['age', 'name', 'sex'])
    <class 'dict_keys'>

    for i in dic.keys():
        print(i)
    for i in dic:
        print(i)

    默认打印键

    sex
    name
    age

    li = list(dic.keys())
    print(li)

    把键打印出列表形式

    #特殊类型:dic转化成list
    print(list(dic.keys()))
    ['age', 'name', 'sex']

    #分别赋值

    a,b = 2,3
    print(a,b)
    a,b = [2,3]
    print(a,b)

    a,b = (2,3)
    print(a,b)
    2,3

    #面试题

    a = 4
    b =5
    a,b = b,a
    print(a,b)

    5,4
    print(dic.values())
    for i in dic.values():
        print(i)

    dict_values(['male', 'jin', 18])
    male
    jin
    18
    print(dic.items())
    for i in dic.items():
        print(i)

    dict_items([('name', 'jin'), ('age', 18), ('sex', 'male')])
    ('name', 'jin')
    ('age', 18)
    ('sex', 'male')
    dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}
    
    for k,v in dic.items():
        print(k,v)

    return:

    k v
    sex male
    age 18
    name jin




    dic.setdefault('k','v') print(dic) # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'} dic.setdefault('k','v1') # {'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'} print(dic)


  • 相关阅读:
    koa2 + webpack 热更新
    koa2在node6中如何运行
    浅拷贝和深拷贝的理解和实现
    angular2多组件通信流程图
    angular2 表单的理解
    ssh-add Could not open a connection to your authentication agent.
    outlook同步异常
    ctrl+c ctrl+d ctrl+z 的区别和使用场景
    grep 详解
    mysql 事务隔离级别 详解
  • 原文地址:https://www.cnblogs.com/kateli/p/8622897.html
Copyright © 2011-2022 走看看