• python学习——字典、集合、数据类型总结


    字典

    注意:遍历字典的时候不要添加/修改元素,那样会导致添加修改的元素重复遍历!

    可变类型数据:列表、字典、集合(可以增删查改)

    dict类型,{}表示,由键值对组成{key:value}

    字典没有下标,键就是字典的索引

    dic = {"name": "小明", "age": 18, "phone": "18900000000"}

    规范:①键不能重复

               ②字典中的键只能使用不可变类型的数据(通常是字符串) (不可变类型:数值,字符串,元组)

               ③键对应的值可以是任何数据类型

    1、索引取值

    dic = {"name": "小明", "age": 18, "phone": "18900000000"}
    print(dic["name"])

    结果:小明

    2、增删查改

    ①添加元素

    1、添加单个元素

    dic = {"a": 11, "b": 22, "c": 33}
    dic["d"] = 99
    print(dic)

    结果:{'a': 11, 'b': 22, 'c': 33, 'd': 99}

    2、update:添加多个元素

    dic = {"a": 11, "b": 22, "c": 33}
    dic.update({"aa": 111, "bb": 222})
    print(dic)

    结果:{'a': 11, 'b': 22, 'c': 33, 'aa': 111, 'bb': 222}

    ②修改元素

    dic = {"a": 11, "b": 22, "c": 33}
    dic["c"] = 99
    print(dic)

    结果:{'a': 11, 'b': 22, 'c': 99}

    ③删除元素

    1、pop:删除键所对应的键值对(返回键对应的值)

    dic = {"a": 11, "b": 22, "c": 33}
    res = dic.pop("b")
    print(res)
    print(dic)

    结果:

    22
    {'a': 11, 'c': 33}

    2、popitem:删除最后一个添加的键值对(python3.5之后),以元组形式返回键值对

    dic = {"a": 11, "b": 22, "c": 33}
    res = dic.popitem()
    print(res)
    print(dic)

    结果:

    ('c', 33)
    {'a': 11, 'b': 22}

    ④查找元素

     1、通过键进行索引取值

    dic = {"a": 11, "b": 22, "c": 33}
    res = dic["c"]
    print(res)

    结果:33

    2、get:通过键获取对应的值

    dic = {"a": 11, "b": 22, "c": 33}
    res = dic.get("c")
    print(res)

    结果:33

    3、其他方法

    ①获取字典中所有的键

    dic = {"a": 11, "b": 22, "c": 33}
    res = dic.keys()
    print(res)
    print(list(res))  #可以转化成列表形式,看起来美观

    结果:

    dict_keys(['a', 'b', 'c'])
    ['a', 'b', 'c']

    ②获取字典中所有的值

    dic = {"a": 11, "b": 22, "c": 33}
    res = dic.values()
    print(res)
    print(list(res))

    结果:

    dict_values([11, 22, 33])
    [11, 22, 33]

    ③items():获取字典的键值对,每个键值对作为一个元组

    dic = {"a": 11, "b": 22, "c": 33}
    print(dic.items())
    print(list(dic.items()))

    结果:

    dict_items([('a', 11), ('b', 22), ('c', 33)])
    [('a', 11), ('b', 22), ('c', 33)]

    4、关于字典定义的扩展方法

    ①{key:value}形式定义

    dic = {"a": 11, "b": 22, "c": 33}

    ②使用dict转换[(key,value),(key,value)]这种数据类型

    dic2 = dict([('a', 11), ('b', 22), ('c', 33), ('d', 44)])
    print(dic2)

    结果:{'a': 11, 'b': 22, 'c': 33, 'd': 44}

     ③dict(key=value,key=value)

    #第三种:dict(key=value,key=value)
    dic3 = dict(name="musen", age=18, gender="")
    print(dic3)

    结果:{'name': 'musen', 'age': 18, 'gender': '男'}

    集合

    集合:set类型,通过{}表示,{value,value}

    集合的特性:

    ①不能存在重复数据

    set2 = {1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 3, 2, 4, 5, 6}
    print(set2)
    #结果:{1, 2, 3, 4, 5, 6}

    ②数据为不可变类型,但集合是可变类型

    ③无序的(和字典一样),没有下标索引

    ④集合是可变类型的数据

    ⑤增删查改

    集合的应用:

    1、对数据去重

    # 字符串去重
    s = "dfghjkldfghjkdfghjk"
    s1 = set(s)  #将字符串转为集合(去重)
    s2 = "".join(s1) #集合重新转为字符串
    print(s2)
    
    结果:fgdklhj
    # 列表去重
    li = [1, 1, 1, 2, 3, 4, 5]
    res = list(set(li))
    print(res)
    
    结果:[1, 2, 3, 4, 5]


    2、把数据放在集合里,用来区分数据是否可变,可变运行会报错

    s6 = {111,99.99,True,"python",(1,2)}  #不报错
    s7 = {{1,2,3}}  #报错

    数据类型总结

    #字符串不可变类型举例
    n = 'python'
    res = n.replace("p","ttt")
    print(res)
    print(n)
    
    结果:tttython
         python

    数据的嵌套

    # 列表里嵌套列表
    li = [[1, 2, 3], [1, 2, 3, [1, 'python', '333']]]
    res = li[1][3][1]
    print(res)
    
    结果:python
    # 列表嵌套字典
    li2 = [{"name": "小明", "info": [1, 2, 3, 4]}, {"name": "无名"}, {"name": "欧阳"}]
  • 相关阅读:
    Codeforces 798C
    Codeforces 798B
    Codeforces 798A
    HDU
    HDU
    HDU
    加速cin的技巧
    Codeforces Gym
    Codeforces Gym
    Solutions to an Equation LightOJ
  • 原文地址:https://www.cnblogs.com/erchun/p/12305086.html
走看看 - 开发者的网上家园