美文网首页
day09-基本数据类型和内置方法加强版

day09-基本数据类型和内置方法加强版

作者: 天行_b6d0 | 来源:发表于2020-07-15 14:56 被阅读0次

    一、字典

    1、定义字典

    d = dict(username='yan', age=18)

    print(d)  # {'username': 'yan', 'age': 18}

    2、类型转换

    d1 = dict([['username','password'],('yan',123)])

    print(d1)  # {'username': 'password', 'yan': 123}

    3、操作方法

    (1)取值

    d = {'username': 'yan', 'password': 123}

    get方法:

    res = d.get('username')

    print(res)  # yan

    res = d.get('xxx')

    print(res)  # None  键不存在会返回None 不会报错

    res = d.get('username', '自定义语句')

    print(res)  # 键存在还是返回对应的值

    res = d.get('xxx', '自定义语句')

    print(res)  # 键不存在 返回get方法里面第二个参数,即自定义语句

    (2)字典新增键值对

    方式1:

    d['hobby'] = 'study'  # 字典的key不存在新增

    print(d)

    d['username'] = 'yan'

    print(d)  # 字典的key存在则修改

    方式2:

    d.update(username='di')

    print(d)  # 特点同上

    方式3

    ps:

    键如果存在的情况下 那么不做修改 而是将对应的value取出

    键如果不存在的情况下 那么就是新增

    d.setdefault('xxx',123)

    print(d)  # 键不存在是新增

    res = d.setdefault('username',123)

    print(d)  # {'username': 'yan', 'password': 123}

    print(res)  # yan

    4、快速构造字典

    res = {}.fromkeys(['k1','k2','k3'],[])

    # print(res)  # {'k1': [], 'k2': [], 'k3': []}

    res.get('k1').append(123)  # {'k1': [123], 'k2': [123], 'k3': [123]}

    print(res)  # 因为构造字典时key指向的都是[],所以[]发生改变时,key的value也跟着改变

    5、弹出

    res = d.pop('username')  # 将括号内指定的key对应的value弹出

    print(d,res)  # yan

    res1 = d.popitem()  # 将弹出的键值对组织成元组的形式返回出去

    print(d,res1)  # {'username': 'yan'} ('password', 123)

    6、字典方法三剑客

    print(d.keys())  # 获取字典所有的key

    print(d.values())  # 获取字典所有的value

    print(d.items())  # 获取字典所有的key和value组织成小元组

    for循环取值:

    for key in d.keys():

        print(key)

    for value in d.values():

        print(value)

    for item in d.items():

        print(item)

    for k, v in d.items():

        print(k,v)

    二、集合

    1、定义

    s1 = {}

    d1 = {}

    print(type(s1),type(d1))  # <class 'dict'> <class 'dict'>

    # 定义空集合一定要用set关键字

    ss = set()

    print(ss,type(ss))  # set() <class 'set'>

    s = {1,1,1,2,3,3,4,3,2,3,4,6,5,3,}

    print(s)  # 集合可以自动去重

    2、类型转换

    s1 = set('yan is a student')

    print(s1)

    s2 = set([1,2,3,4,5,6,7,7,7,7,7])

    print(s2)

    s3 = set({'username':'yan','password':123})

    print(s3)  # {'password', 'username'}

    3、去重的另外两个方法

    方法一:

    l = [4,3,2,3,4,6,7,8,1,2,3]

    new_l = []

    for i in l:

        if i not in new_l:

            new_l.append(i)

    print(new_l)

    方法2:

    res = {}.fromkeys(l1, [])

    l2 = []

    for k in res.keys():

        l2.append(k)

    print(l2)

    4、交集、并集、差集、对称差集

    用户1的好友列表

    friends1 = {'jason','tank','tony','jerry'}

    用户2的好友列表

    friends2 = {'jason','tony','owen','oscar'}

    (1) 求两个用户的共同好友  交集

    res = friends1 & friends2

    print(res)  # {'jason', 'tony'}

    (2) 求两个用户所有的好友

    res = friends1 | friends2

    print(res)  # {'jerry', 'jason', 'oscar', 'tony', 'tank', 'owen'}

    (3) 求用户1独有的好友

    res1 = friends1 - friends2

    res2 = friends2 - friends1

    print(res1,res2)  # {'jerry', 'tank'} {'owen', 'oscar'}

    (4) 求两个用户各自独有的好友            对称差集

    res = friends1 ^ friends2

    print(res)  # {'owen', 'jerry', 'tank', 'oscar'}

    5、子集 父集

    s1 = {12,3,4,5,6}

    s2 = {12,6}

    print(s1 > s2)  # s1是否是s2的父集

    print(s2 < s1)  # s2是否是s1的子集

    相关文章

      网友评论

          本文标题:day09-基本数据类型和内置方法加强版

          本文链接:https://www.haomeiwen.com/subject/hxafhktx.html