current position:Home>Python foundation 05 - dictionary: dict and set: set, reading this article is enough

Python foundation 05 - dictionary: dict and set: set, reading this article is enough

2022-11-08 06:23:15dashing Aries

1字典: dict 无序可变序列

A dictionary is a mutable,无序的容器 ,The elements in the dictionary are all key-value pairs,每一个值(value)corresponds to a key(key),The iconic symbol is花括号{}和冒号

1.1 创建

1.1.1 用{ }创建字典

dict1={
    '韩梅梅': 80,'李雷': 86 ,'张三': 77 }
dict1
#out:{'韩梅梅': 80, '李雷': 86, '张三': 77}
#Pass in values ​​of different types
dict1={
    '韩梅梅': 80,'李雷': 86 ,'张三': [77,45,56] }
dict1
#out:{'韩梅梅': 80, '李雷': 86, '张三': [77, 45, 56]}
#创建空字典
dict1 = {
    }
dict1
out: {
    }

1.1.2 用dict创建字典

dict2 = dict(韩梅梅= 80, 李雷= 86, 张三= 77)
dict2
#out: {'韩梅梅': 80, '李雷': 86, '张三': 77}
#可以使用元组或者列表,Wrap a pair
dict2 = dict([('韩梅梅',80), ('李雷',86),('张三',79)])
dict2
#out: {'韩梅梅': 80, '李雷': 86, '张三': 79}
#创建空字典
dict2 = dict()
dict2 
out: {
    }

1.1.3 用zip创建字典

name = ['韩梅梅', '李雷', '张三']
score = [80, 86, 79]
dict3 = dict(zip(name,score))
dict3 
#out: {'韩梅梅': 80, '李雷': 86, '张三': 79}

1.1.4 用fromkeys创建字典

#Create a dictionary with the same values
dict4 = dict.fromkeys(['韩梅梅', '李雷', '张三'], 99)
dict4
#out: {'韩梅梅': 99, '李雷': 99, '张三': 99}
#创建值为空的字典
dict4 = dict.fromkeys(['韩梅梅', '李雷', '张三'])
dict4
#out: {'韩梅梅': None, '李雷': None, '张三': None}

注意:

  • 必须是不可变的数据类型才可以做字典的键,If it is a tuple containing a list, it cannot be used as a key.
#Tuples are immutable types that tuples can dokey,但是列表不可以
dict1={
    ('王明','韩梅梅'): 80,'李雷': 86 ,'张三': 79 }
dict1

在这里插入图片描述在这里插入图片描述

  • The keys of the dictionary cannot have duplicate values(键必须是唯一的),值可以重复,Composite types can be made.
    If the name of the key is repeated,不会报错,Keep the following key-value pair
    在这里插入图片描述

1.2 查询

1.2.1 Access dictionary values ​​by key

1.2.1.1 Get key directly dict[ ]

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2['韩梅梅']
#out: 80

1.2.1.2 get()

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.get('韩梅梅')
#out: 80
dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
#If the key does not exist in the dictionary,不会报错,输出为空;
#get中可以传入两个参数,If the key exists in the dictionary,The value corresponding to the key is output,Otherwise, output the set output content.
dict2.get('韩梅梅','不存在')
#out: 80

在这里插入图片描述

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.get('王梅','不存在')
#out: 不存在

在这里插入图片描述

1.2.2 View dictionary keys and values

1.2.2.1 返回所有的键 dict.keys()

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.keys()
#out: dict_keys(['韩梅梅', '李雷', '张三'])

在这里插入图片描述

1.2.2.2 返回所有的值 dict.values()

dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.values()
#out: dict_values([80, 86, 79])

在这里插入图片描述

1.2.3 返回所有键值对 dict.items()

#dict.items()Helps implement conversions between dictionaries and other data types
dict2 = dict([['韩梅梅',80], ['李雷',86],['张三',79]])
dict2.items()
#out: dict_items([('韩梅梅', 80), ('李雷', 86), ('张三', 79)])

在这里插入图片描述

1.2.4 判断键是否存在 in

dict1={
    '韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
'韩梅梅' in dict1  #Find a value in the dictionary
#out: True 

1.3 增加

1.3.1 dict1[’ ']

dict1={
    '韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90}
#键不存在,增加一个元素
dict1['王梅'] = 88
dict1
#out: {'韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}

在这里插入图片描述

1.3.2 dict.setdefault()

dict1={
    '韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90}
dict1.setdefault('李红',100)
dict1
#out: {'韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90, '李红': 100}

在这里插入图片描述

1.4 修改

1.4.1 Modify the value of a dictionary by key

dict1={
    '韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90}
#键存在,修改对应的值
dict1['韩梅梅'] = 88
dict1
#out: {'韩梅梅': 88, '李雷': 86, '张三': 77, '王五': 90}

1.4.2 Modify a value from one dictionary to another

dict1={
    '韩梅梅': 80, '李雷': 86, '张三': 77}
dict2={
    '李雷': 96, '张三': 77, '王五': 90}
dict1.update(dict2)
dict1
#out: {'韩梅梅': 80, '李雷': 96, '张三': 77, '王五': 90}

在这里插入图片描述

1.5 删除

1.5.1 del dict[‘’]

#del Delete a key-value pair for a key in a dictionary 
dict1={
    '韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
del dict1['韩梅梅']
dict1
#out: {'李雷': 86, '张三': 77, '王五': 90, '王梅': 88}

1.5.2 pop和popitem

pop和popitem The element that will be thrown,That is, take out the corresponding value,Then delete the key-value pair from the original dictionary

dict1={
    '韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
dict1.pop('韩梅梅')
#out: 80
dict1
#out: {'李雷': 86, '张三': 77, '王五': 90, '王梅': 88}

在这里插入图片描述popitem删除最后一个键值对

dict1={
    '韩梅梅': 80, '李雷': 86, '张三': 77, '王五': 90, '王梅': 88}
dict1.popitem()
#out: ('王梅', 88)

在这里插入图片描述

1.5.3 clear 清空字典

在这里插入图片描述

1.5.4 del 删除字典

在这里插入图片描述

1.6 应用 统计字符串出现次数

s = 'absdcdaa'
d = {
    }
for i in s:
    d[i] = d.get(i,0)+1
d
#out: {'a': 3, 'b': 1, 's': 1, 'd': 2, 'c': 1}

2 集合: set 无序可变序列

Collections are often used to perform operations on other data types去重

2.1 创建

集合是一种Unordered mutable的容器,Corresponds to sets in mathematics,The iconic symbol is花括号{}
集合与字典类似,The elements in the collection are treated as keys in the dictionary(The elements inside need to be immutable data types),There are no duplicate values ​​in the collection

2.1.1 用{} 创建

set1 = {
    1,2,'a','b'}
set1
#out: {1, 2, 'a', 'b'}
type(set1)
#out: set

2.1.1 用set( )创建

set2 = set([1,2,'a','b'])  #或者set2 = set((1,2,'a','b'))
set2
#out: {1, 2, 'a', 'b'}

2.2 查询 in

在这里插入图片描述

2.3 修改 set1.update(set2)

在这里插入图片描述

2.4 增加 add

在这里插入图片描述
在这里插入图片描述

2.5 删除

2.5.1 pop随机删除

在这里插入图片描述

2.5.2 按照元素值删除

在这里插入图片描述

2.5.3 清空 clear

在这里插入图片描述

2.6 Exclusive operation 求并集,交集,差集,子集判断,等于和不等于

在这里插入图片描述在这里插入图片描述

2.7 应用 Other data types are deduplicated

在这里插入图片描述

copyright notice
author[dashing Aries],Please bring the original link to reprint, thank you.
https://en.pythonmana.com/2022/312/202211080610219752.html

Random recommended