美文网首页
python字典与集合

python字典与集合

作者: 像小象的云 | 来源:发表于2018-10-20 17:16 被阅读0次

    字典

    python中的字典是一种可变、无序的容器类型,可变即字典中的元素增删改,无序即不能根据下标(索引)来获取其中的元素。字典中的每个元素都是由 键:值 的形式,一个字典中的键必须是由不可变元素构成,且不能重复,值可以是任意类型。

    字典方法:

    方法 描述
    radiansdict.clear() 删除字典内所有元素
    radiansdict.copy() 返回一个字典的浅复制
    radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
    radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
    radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组
    radiansdict.keys() 返回一个迭代器,可以使用 list() 来转换为列表
    radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
    radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里
    radiansdict.values() 返回一个迭代器,可以使用 list() 来转换为列表
    dict.pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
    dict.popitem() 随机返回并删除字典中的一对键和值(一般删除末尾对)
    dict1 = {"name":"lily","age":14} #创建一个字典
    list1 = ["score","money"]
    print("score" in dict1) #成员测试,对字典进行的成员测试是对字典键的检测
    dict2 = dict1.copy() #浅复制,实际创建了一个新的字典,两个字典的值相同
    print(dict1 == dict2)
    print(dict2 is dict1)
    #dict.fromkeys(seq,[value])创建一个新的字典,以seq中的每个元素做键,vlaue做值,如果不传入value,默认None
    dict3 = dict.fromkeys(list1,100)
    print(dict3)
    #dict.get(key,[value]) 获取key的值,当不传入value时如果key不存在,返回None,当传入value时如果key不存在,返回value
    print(dict1.get("age",20))
    print(len(dict1)) #获取dict1中元素个数
    #dict.items() 将dict中的每一个键值对以元组(键,值)的形式返回一个列表
    print(dict1.items())
    #dict.keys() 将dict中的所有键返回一个列表
    print(dict1.keys())
    #dict.values() 将dict中的所有值返回一个列表
    print(dict1.values())
    #dict.pop(key[,default])|删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
    print(dict1.pop("age"))
    #dict.popitem()随机返回并删除字典中的一对键和值(一般删除末尾对)
    print(dict2.popitem())
    #dict.update(dict2)把字典dict2的键/值对更新到dict里
    dict1.update(dict3)
    print(dict1)
    #dict.setdefault(key)  --> 添加键值对,键是key,值是None
    #dict.setdefault(key,value)  --> 添加键值对,键是key,值是value
    #dict:key存在的时候,对字典不会有任何操作(不会修改key对应的值)
    dict1.setdefault("age",23)
    print(dict1)
    #dict1[key]=value  当key存在时,改变对应的值,当key不存在时,添加新的键值对 key:value
    dict1["gender"] = "男"
    print(dict1)
    #dict.clear() 清空字典
    dict1.clear()
    print(dict1)
    
    执行结果:
    False
    True
    False
    {'score': 100, 'money': 100}
    14
    2
    dict_items([('name', 'lily'), ('age', 14)])
    dict_keys(['name', 'age'])
    dict_values(['lily', 14])
    14
    ('age', 14)
    {'name': 'lily', 'score': 100, 'money': 100}
    {'name': 'lily', 'score': 100, 'money': 100, 'age': 23}
    {'name': 'lily', 'score': 100, 'money': 100, 'age': 23, 'gender': '男'}
    {}
    

    集合

    集合是可以同时存储多个数据,可变的,无序的,且元素是唯一的。唯一是值不能有重复的元素,自动去重,这一点经常用来对序列元素去重。
    集合中的元素只能是不可变的数据。

    set1 = {1, 2, 3,2,3}
    print(set1)
    set2 = {}  # 这个是空的字典
    
    # 2.集合的增删改查
    # a.查(获取元素)
    """
    集合不能单独的获取一个元素,也不能切片,只能通过for-in来遍历
    """
    for x in set1:
        print(x)
    
    # b.增(添加元素)
    """
    集合.add(元素) --> 在集合中添加一个元素
    """
    set1 = {1, 2, 3}
    set1.add(4)
    print(set1)
    
    """
    集合1.update(序列)  --> 将序列中的元素添加到集合1中
    """
    set1.update({'a', 'b'})
    print(set1)
    
    set1.update('0987')
    print(set1)
    
    set1.update(['abc', 'aaa'])
    print(set1)
    
    set1.update({'name': 1, 'age': 18})   # 字典只添加key
    print(set1)
    
    # 3.删(删除元素)
    """
    集合.remove(元素) --> 删除指定的元素
    """
    set1.remove(1)
    print(set1)
    
    # 4.改(集合不能改)
    
    执行结果:
    {1, 2, 3}
    1
    2
    3
    {1, 2, 3, 4}
    {'b', 1, 2, 3, 4, 'a'}
    {1, 2, 3, 4, '0', 'a', '8', 'b', '9', '7'}
    {1, 2, 3, 4, 'abc', '0', 'a', '8', 'b', 'aaa', '9', '7'}
    {1, 2, 3, 4, 'abc', '0', 'name', 'age', 'a', '8', 'b', 'aaa', '9', '7'}
    {2, 3, 4, 'abc', '0', 'name', 'age', 'a', '8', 'b', 'aaa', '9', '7'}
    

    集合可以进行数学集合运算

    # 集合相关的运算: 是否包含,交集、并集、差集、补集
    # 1.包含
    """
    集合1 >= 集合2 ---> 判断集合1之中是否包含集合2
    集合2 <= 集合2 ---> 判断集合2之中是否包含集合1
    """
    set1 = {1, 2, 3, 4, 5, 10}
    set2 = {3, 4, 1}
    print(set1 >= set2)
    
    # 2.交集 -> &
    """
    & --> 求两个集合公共的部分
    """
    set1 = {1, 2, 3, 4, 5}
    set2 = {1, 2, 3, 10, 20}
    print(set1 & set2)
    
    # 3.求并集
    """
    | --> 求两个集合的和
    """
    print(set1 | set2)
    
    # 4.求差集
    """
    集合1-集合2 --> 求集合1中除了集合2以外的部分
    """
    print(set1 - set2)
    
    # 5.求补集
    """
    ^ --> 求两个集合除了公共部分以外的部分
    """
    print(set1 ^ set2)
    
    执行结果
    True
    {1, 2, 3}
    {1, 2, 3, 4, 5, 10, 20}
    {4, 5}
    {20, 4, 5, 10}
    

    相关文章

      网友评论

          本文标题:python字典与集合

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