Python_数据容器详解

news2024/11/19 9:26:40

Python数据容器

  • 1. 列表基础语法和操作
      • 练习题
  • 2. 列表的循环
      • 练习题
  • 3. 元组 tuple
  • 4. 元组的循环
      • 练习题
  • 5. 字符串
  • 6. 切片
      • 练习
      • 总结
  • 7. set 集合
  • 8. 字典 dict
    • 字典的嵌套
      • 总结
    • 字典常用操作
      • 练习
  • 9. 对比总结以及通用操作
    • 对比总结
    • 通用操作

1. 列表基础语法和操作

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

"""
列表的基础语法和定义:

    列表:列表中的每一个数据称之为元素,列表中存储的元素类型可以不同
    - 变量名 = [x1,x2,x3,...]
    - 空列表 :
            变量名 = []
            变量名 = list()
    嵌套列表的定义 -- > list = [[1,2,3],[2,3,4]]
    列表的下表:与 Java数组下表一致,从0开始

"""

# 定义一个列表
study_list = ["永夜","123",123,True,["henFan","很难受"]]
print(study_list[0])
print(study_list[1])
print(study_list[2])
print(study_list[3])
print(study_list[4])
print("倒着取对应下标=======================================")
print(study_list[-1])
print(study_list[-2])
print(study_list[-3])
print(study_list[-4])
print(study_list[-5])

# 取出嵌套元素
my_List = [[123,"fuck"],[456,True,"你很棒"]]
print(my_List[0])
print(my_List[1])

"""
列表提供的方法:
    - 查询下标:列表.index(元素)
    - 元素插入:列表.insert(下标,元素) 在指定的下标位置,插入指定的元素
    - 元素的追加:列表.append(元素) 尾插
    - 批量追加:列表.extend(元素) 尾插
    
    - 删除单个元素:del 列表(下标) -- > 指定下标进行删除
            :列表.pop(下标) -- > 取出下标元素,可以接收
            pop 和 del 的区别:del只删除元素,而 pop不仅能够删掉元素
            还能将删掉的元素作为返回值去得到
            
            列表.remove(元素) -- >删除某元素在列表中的第一个匹配项
    - 清空列表:列表.clear()
    
    - 统计元素在列表中的数量: 列表.count(元素)
    
    - 统计列表中元素的数量: len(列表)
"""

# 查询下标:
num_index = my_List.index([123,"fuck"])
print(num_index)

# 元素插入:
my_List.insert(0,"周佳琪")
print(my_List)
print(f"插入元素后,列表变为:{my_List}")

# 元素追加:
my_List.append([1,2,3,"小鸡娃子"])
print(f"在列表后面追加了一段元素:{my_List}")

# 批量追加
my_List2 = [2,3,4]
my_List.extend(my_List2)
print(f"批量追加后的结果为: {my_List}")



print("======================列表的删除======================")
# 列表的删除操作

    # del 列表(下标)
del_list = [1,2,3,4,5,6,"小王","大王","王炸"]
del del_list[2]
print(f"删除下标后的列表:{del_list}")

    # 列表.pop(下标)
res = del_list.pop(5)
print(f"下标为5的元素为:{res},{del_list}")

    # 列表.remove(元素) -- > 删除元素在列表中的第一个匹配项

num_list = [1,2,3,2,3]

num_list.remove(2)

print(num_list)

num_list.clear()
print(f"列表被情况le : {num_list}")


# 统计元素在列表中的个数 列表.count()

num_list = [1,2,3,2,3]

res = num_list.count(2)

print(f"2在num_list中的个数为:{res}")


# 统计列表中元素的数量: len(列表)

print(f"列表中有 {len(num_list)}个")

练习题

在这里插入图片描述

student_list = [21,25,21,23,22,20]

print(student_list)
# 追加元素
student_list.append(31)
print(f"追加31后的列表:{student_list}")
# 追加新列表
new_list = [29,33,30]
student_list.extend(new_list)
print(student_list)
# 取出最后一个元素
last_num = student_list.pop(-1)
print(f"最后有个元素是: {last_num}")

index_num = student_list.index(31)
print(f"31的下标为:{index_num}")

print(f"列表的长度为:{len(student_list)}")

2. 列表的循环

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述



"""
    列表的遍历:
        - while循环
        - for循环
"""

"""
    while循环:
    循环控制变量通关下标索引来控制,默认是0
    每一次循环将下标索引变量+1
    循环条件:下标索引 < 列表的元素数量
"""

def while_list():
    index = 0
    num_list = [1,2,3,4,5,10,2]
    new_list = []
    while index < len(num_list):
        element = num_list[index]
        print(f"循环取出的列表元素为:{element}")
        new_list.append(element)
        index = index + 1
    print(f"新的列表为:{new_list}")
while_list()


"""
    for循环:
    
"""

def for_list():
    num_list = ["阿峰","不靠谱","扑该",666,False]
    for element in num_list:
        print(f"for循环列表的结果:{element}")
for_list()

练习题

在这里插入图片描述

num_list = [1,2,3,4,5,6,7,8,9,10]
def getDouble(num_List):
    new_list = []
    for i in num_List:
        if i % 2 == 0:
            new_list.append(i)
        else:
            print(f"{i}不是偶数")
    print(f"新的列表存放的偶数为:{new_list}")
getDouble(num_list)

def while_getDouble(numList):
    new_list = []
    index = 0
    while index < len(numList):
        element = numList[index]
        index = index+1
        if element % 2 == 0:
            new_list.append(element)
        else:
            print(f"{element}不是偶数")

    print(f"偶数为:{new_list}")
while_getDouble(num_list)

3. 元组 tuple

元组定义:
在这里插入图片描述

元组的操作

在这里插入图片描述

因为tuple 不可改变,所以无法想 List 一样进行 增删操作
注意 元组的元素无法进行修改,元素内List的内容可以进行修改

如下:

tup_list = (1,2,["yinyue","xiaojiwazi"])
# 修改 1,2 的内容会报错
# tup_list[0] = 2
# print(tu_list)

# 修改 嵌套在元组里面列表的内容不会报错 (元素内List的内容可以进行修改)
tup_list[2][0] = "音乐"
tup_list[2][1] = "小鸡娃子"
print(f"tupList修改后:{tup_list}")
"""
    元组
    - 定义
    - 操作
"""

"""
    元组的定义
"""
# 定义元组
t1 = (1,"aFeng","牛马",True)
# 空元组
t2 = ()
t3 = tuple()
print(f"t1的类型是:{type(t1)},值是{t1}")
print(f"t2的类型是:{type(t2)},值是{t2}")
print(f"t3的类型是:{type(t3)},值是{t3}")
# 定义单个元组
t4 = ("hello")  # 定义单个元组如果不加 , 那么默认为字符串
t4_1 = ("hello",)
print(f"t4的类型是:{type(t4)},值是{t4}")
print(f"t4_1的类型是:{type(t4_1)},值是{t4_1}")


"""
    元组的操作
"""
# index查找,查找嵌套元组
t5 = ((1,2,3),(4,5,6))
# 我需要取出元素6
num_t5 = t5[1][2]  # [1]代表最外层,[][2]代表最里层
print(f"从嵌套元组中取出的数据是:{num_t5}")

t6 = ("啊峰","是个策划","是个不靠谱的","扑该",666)

# index
num_t6 = t6[4]
num_res = t6.inedex(666)  # 根据输入数据,查找对应下标
print(num_t6)

t_num = ("a","a","a","b",123,321)
# count 统计元素个数

# 统计a的个数
num_res = t_num.count("a")
print(num_res)

# len 统计元组元素数量
res_len = len(t_num)
print(res_len)

4. 元组的循环

tu_list = (1,2,3,4,5)
def tu_while(tu_list):
    index = 0
    while index < len(tu_list):
        print(f"{tu_list[index]}")
        index = index + 1
tu_while(tu_list)


def tu_for(tu_list):
    for i in tu_list:
        print(f"{i}")
tu_for(tu_list)

练习题

在这里插入图片描述

tup_ = ("周杰伦",11,["footBall","music"])
# 查询年龄所对应下标
age_index = tup_.index(11)
print(f"年龄对应的下标为:{age_index}")

# 查询学生名称
student_name = tup_[0]
print(f"学生的名称:{student_name}")

# 删除学生爱好中的 footBall
rm_num = tup_[2].pop(0)
print(f"删除的元素为:{rm_num}")
print(f"删除后元组为:{tup_}")

# 增加爱好: coding 到爱好 list 中
increase_num = tup_[2].append("conding")
print(f"增加的元素是:{increase_num}")
print(f"增加后的元组为:{tup_}")

5. 字符串

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

在这里插入图片描述

"""
    字符串操作
"""

str_num = "s1周佳琪isBig美女"
st_num1 = str_num[0]
st_num2 = str_num[-1]
print(st_num1)
print(len(str_num))
print(st_num2)

# index 方法 根据元素查找对应下标
my_str = "python全栈开发工程师"
value = my_str.index("栈")
print(value)

# replace 方法 替换 字符串.replace(“字符串1”,"字符串2")
new_my_str = my_str.replace("python","Java")
print(new_my_str)

# split 方法 按照 给定字符串进行分割 不会修改原有字符串,返回一个列表
str_value = "hello world 我要 成为 不一样 的人"
new_str_value = str_value.split(" ")
print(new_str_value)

# strip() 去掉首位 空格/换行服/
# strip("xx") 去掉指定字符串
str_value1 = " hello 小卡拉米 "
new_str = str_value1.strip()
print(f"移除首位空格后:{new_str}")


str_value2 = "12abc21"
print(str_value2.strip("12"))  # abc
# 传入虽然是12,但是是按照 1 和 2 ,所以都会被移除

# count("x") 统计x的个数
str_1 = "1231132"
print(str_1.count("1"))

# len()
print(len(str_1))

test_str = "itheima itcast boxuegu"

# 统计有多少个it
res_ = test_str.count("it")
print(res_)

# 空格替换成 |
new_str = test_str.replace(" ","|")
print(new_str)

# 按照|进行分割
new_str_list = new_str.split("|")
print(new_str_list)   [xx,xxx,xxx]

6. 切片

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

"""
    切片操作: 列表/容器[start,end,step]
        列表
        容器
"""

# 对 list 进行切片,从1开始,4阶数,步长为1
my_list = [0,1,2,3,4,5,6]
result1 = my_list[1:4]  # step 默认为1
print(f"my_list从1-4的结果为:{result1}")  # 切片左闭右开

# 对 tuple 进行切片,从头开始,到结束,步长为1
my_tuple = (0,1,2,3,4,5,6)
result2 = my_tuple[:]  # 起始到结束,步长为1
print(f"起始到结束步长为1的结果为:{result2}")

# 对str进行切片,从头开始,到结束,步长为2
my_str = "0123456"
result3 = my_str[::2]
print(f"开始到结束步长为2的结果为:{result3}")

# 对 str 进行切片,从头开始,到结束,步长为-1
my_str = "01234567"
result4 = my_str[::-1]  # 等同于 将序列反转
print(f"反转后的结果为:{result4}")

# 对列表进行切片,从3开始,1结束,步长为-1
my_list = [0,1,2,3,4,5,6]
result5 = my_list[3:1:-1]
print(f"倒着来的结果为:{result5}")

# 对元组进行切片,从头到结束,步长为-2
my_tuple = (0,1,2,3,4,5,6,7)
result6 = my_tuple[::-2]
print(f"结果为:{result6}")

练习

"""
    有字符串 "玩过薪悦,员序程峰啊来,狗莎大"
"""

# 得到阿峰程序员
# 具体操作如下
str_List = "玩过薪悦,员序程峰啊来,狗莎大"
# 将 字符串 倒叙
new_str = str_List[::-1]
print(f"倒叙后的字符串为:{new_str}")
# 取出 阿峰

print(new_str[5:7])

总结

在这里插入图片描述

7. set 集合

set 去重 且 无序(不支持下标索引)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



# 定义集合  -- 去重 且 无序 (不支持下标索引)
my_set = {"周佳琪","zjq","周佳琪is小坏蛋","小坏蛋zjq","zjq","周佳琪","不给女人花钱"}
my_set_empty = set()
print(f"my_set的内容是:{my_set},类型是:{type(my_set)}")
print(f"my_set_empty的内容是:{my_set_empty},类型是:{type(my_set_empty)}")

# 添加元素
my_set.add("周佳琪")
print(f"my_set添加元素后结果是: {my_set}")


# 移除元素  -- > 注意区分,remove 移除第一个匹配项
my_set.remove("zjq")
print(f"my_set移除zjq后:{my_set}")

# 集合.pop() 从集合中随机取一个 -- > 和其他容器不同,因为set无下标索引,因此是随机取出的

new_my_set = {"诗悦","西游","bigLoverForEver"}
element = new_my_set.pop()
print(f"随机取出的元素为:{element}")
print(new_my_set)

# 清空集合 集合.clear()
new_my_set.clear()
print(f"清空后的集合为: {new_my_set}")

"""
    取两个集合的差集
    语法: 集合1.difference(集合2) ---> 取出集合1和集合2的差集(集合1有集合2没有的)
    结果: 得到一个辛几何,集合1和集合2不变
"""

set1 = {1,2,3}
set2 = {1,5,6}
new_set = set1.difference(set2)
print(f"set1和set2的差集为:{new_set}")


"""
    消除差集
    语法:集合1.difference_update(集合2)
    对比集合1和集合2,在集合1内,删除和集合2相同的元素
    结果:集合1被修改,集合2不变
"""

set1 = {1,2,3}
set2 = {1,5,6}
set1.difference_update(set2)
print(f"消除差集和set1改变为:{set1}")
print(f"set2为:{set2},没有发生改变")


"""
    合并两个集合 
    语法: 集合1.union(集合2)
    结果: 得到新集合 
"""
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.union(set2)
print(f"合并后的结果为:{set3}")
print(f"set1为:{set1}")
print(f"set2为:{set2}")


"""
    统计集合元素数量 len()
"""
set = {1,2,3,4,5,6}
count = len(set)
print(count)


"""
    集合的遍历
    集合不支持下标索引,所以不支持 while 循环
    但是能够支持 for 循环
    
"""
for element in set:
    print(f"集合元素有: {element}")

# 练习 对下列信息进行去重
my_list = ["攀枝花吴彦祖徐海涛","西北野玫瑰周佳琪","广州扑该李庚峰","zjq","zjq",
           "xht","xht","啊峰","阿峰"]

# 1. 定义一个空集合
my_set = set()

# 2. 通过for循环遍历列表 -- 在for选好中将列表元素添加到集合
for i in my_list:
    my_set.add(i)

print(my_set)

8. 字典 dict

字典的定义和set集合一样都是用的{},但是存储的元素不一样
字典的 key 和 value 可以为任意类型,注意: key 不能为 字典

在这里插入图片描述

# 1、定义字典
my_dict = {"大于":80,"小于":90,"最后":85}

# 2、定义空字典
my_dict1 = {}
my_dict2 = dict()

print(f"字典my_dict的内容是:{my_dict},类型是{type(my_dict)}")
print(f"字典my_dict1的内容是:{my_dict1},类型是{type(my_dict1)}")
print(f"字典my_dict2的内容是:{my_dict2},类型是{type(my_dict2)}")

# 3、定义重复 key 的字典 -- > 字典不允许 key 的重复
my_dict1 = {"王力宏":99,"王力宏":88,"林俊杰":70}
print(f"重复key的字典内容是:{my_dict1}")  # 输出结果 "王力宏":88,"林俊杰":70

# 4、从字典中基于 key 获取 value
my_dict = {"大于":80,"小于":90,"最后":85}
score = my_dict["大于"]
print(f"score为:{score}")


字典的嵌套

在这里插入图片描述

# 5、 定义嵌套字典 -- 字典的 key 可以为 任意的 类型
stu_score_dict = {
    "王力宏": {
        "语文":88,
        "数学":90,
        "英语":70
    },
    "周佳琪":{
        "语文":89,
        "数学":99,
        "英语":80
    },
    "李庚峰":{
        "语文":0,
        "数学":9,
        "英语":0
    }
}
print(f"学生的考试信息是:{stu_score_dict}")

# 6、 从嵌套字典中获取数据
# 周佳琪语文信息

score_info = stu_score_dict["周佳琪"]["语文"]
print(score_info)

总结

在这里插入图片描述

字典常用操作

在这里插入图片描述

"""
    字典的常见操作:
        新增
        删除
        清空
        获取全部的 key
        遍历字典
        统计字典内的元素个数
"""
my_dict = {"周杰伦":99,
           "林俊杰":88,
           "张学友":77}

# 新增元素
my_dict["周佳琪"] = 99
print(f"字典经过元素增加之后的结果为:{my_dict}")

# 更新元素
my_dict["周佳琪"] = "更新后的元素是70"
print(f"my_dict更新后的元素为:{my_dict}")

# 删除元素 pop()
score = my_dict.pop("周佳琪")
print(f"字典中删除一个元素后为:{my_dict},周佳琪的分数为{score}")

# 清空元素 clear
my_dict.clear()
print(my_dict)

# 获取全部的 key
my_dict = {"周杰伦":99,
           "林俊杰":88,
           "张学友":77}

keys = my_dict.keys()
print(f"全部的keys为:{keys}")

# 遍历字典
# 方法1:通关获取全部的 key 进行遍历
for key in keys:
    print(f"遍历的结果为:{my_dict[key]}")


# 方法2:直接对字典进行for循环,每一次循环都是直接得到key
my_dict = {"周佳琪":80,
           "阿峰":90,
           "叶小儿":60}

for key in my_dict:
    print(f"my_dict的key是:{key}")
    print(f"my_dict的value是:{my_dict[key]}")

# 计算字典元素数量 len()
res = len(my_dict)
print(res)

练习

在这里插入图片描述

# 练习
# 定义字典
info_dict = {
    "王力宏":{
        "部门":"科技部",
        "工资":3000,
        "级别":1
    },
    "周杰伦":{
        "部门":"市场部",
        "工资":5000,
        "级别":2
    },
    "林俊杰":{
        "部门":"市场部",
        "工资":7000,
        "级别":3
    },
    "张学友":{
        "部门":"科技部",
        "工资":4000,
        "级别":1
    },
    "刘德华":{
        "部门":"市场部",
        "工资":6000,
        "级别":2
    }
}
print(f"员工信息如下:{info_dict}")

# 通过 for 循环,对所有级别为 1 级的员工,级别上升1,薪资增加1000
for key in info_dict:
    if info_dict[key]["级别"] == 1:
       # 升职加薪操作
       # 获取value
       employee_info_dict = info_dict[key]
       # 修改value
       employee_info_dict["级别"] == 2  # 级别+1
       employee_info_dict["工资"] == employee_info_dict["工资"] + 1000
       # 将value的信息更新回 info_dict
       info_dict[key] = employee_info_dict
print(f"更新后的信息为:{info_dict}")

9. 对比总结以及通用操作

对比总结

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

通用操作

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

在这里插入图片描述

sorted(列表,reverse=True) 返回列表

"""
    演示数据容器的通用功能
"""
my_list = [1,2,3,4,5]
my_tuple = (1,2,3,4,5)
my_str = "abcdefg"
my_set = {1,2,3,4,5}
my_dict = {
    "key1":1,
    "key2":2,
    "key3":3,
    "key4":4,
    "key5":5
           }

# len 元素个数
print(f"列表元素的个数有: {len(my_list)}")
print(f"元组元素的个数有: {len(my_tuple)}")
print(f"字符串元素的个数有: {len(my_str)}")
print(f"集合元素的个数有: {len(my_set)}")
print(f"字典元素的个数有: {len(my_dict)}")

# max 最大元素
print(f"列表最大元素是有: {max(my_list)}")
print(f"元组最大元素是有: {max(my_tuple)}")
print(f"字符串最大元素是有: {max(my_str)}")
print(f"集合元最大元素是有: {max(my_set)}")
print(f"字典最大元素是: {max(my_dict)}")

# min 最小元素
print(f"列表最小元素是有: {min(my_list)}")
print(f"元组最小元素是有: {min(my_tuple)}")
print(f"字符串最小元素是有: {min(my_str)}")
print(f"集合元最小元素是有: {min(my_set)}")
print(f"字典最小元素是: {min(my_dict)}")

# 类型转换 : 容器列表
print(f"列表转列表的结果是:{list(my_list)}")
print(f"元组转列表的结果是:{list(my_tuple)}")
print(f"字符串转列表的结果是:{list(my_str)}")
print(f"集合转列表的结果是:{list(my_set)}")
print(f"字典转列表的结果是:{list(my_dict)}")

# 类型转换: 容器转元组
print(f"列表转元组的结果是:{tuple(my_list)}")
print(f"字符串转元组的结果是:{tuple(my_str)}")

# 类型转换: 容器转字符串
print(f"列表转字符串的结果是:{str(my_list)}")  # "[1,2,3,4,5]"
print(f"元组转字符串的结果是:{str(my_tuple)}")  # "(1,2,3,4,5)"

# 类型转换: 容器转集合
print(f"列表转集合的结果是:{set(my_list)}")
print(f"元组转集合的结果是:{set(my_tuple)}")

# 通用排序 将给定容器进行排序
# sorted(容器,revers=True)  -- > 排序后返回 列表
st_list = [2,3,13,2,0,9,20,8]
print(f"列表的排序结果:{sorted(st_list)}")
# 反向排序
print(sorted(st_list,reverse=True))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/886292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯嵌入式省一教程:(二)LCD显示

在嵌入式开发中&#xff0c;屏幕显示是一个非常重要的功能。同时&#xff0c;其移植对于初学者来说较为复杂&#xff0c;需要较好地掌握I2C或SPI等通讯协议。然而&#xff0c;在蓝桥杯中&#xff0c;比赛方已经为我们提供了与LCD有关的库&#xff0c;这让我们能够简单方便地使用…

Nginx 下载、安装与运行

下载地址 Nginx官网 - 下载页面 在Windows电脑&#xff0c;下载Windows版本。 下载的就是一个 zip 压缩包。解压后的文件就是可以直接使用的 Nginx 。 版本说明 选择 Mainline 版本就可以了。 解压到合适的位置 运行Nginx 命令行&#xff0c;进入 Nginx 所在的目录。运…

产品经理:能不能把 Vue 的中文输入法 bug 解决了?

前言 有个挺常见的需求相信大家应该都遇到过&#xff0c;就是一个搜索框&#xff0c;边输入边提示&#xff0c;类似于下面这样&#xff1a; 这玩意在前端也挺好实现的&#xff0c;就 v-model 然后 watch 再做个防抖请求接口呗&#xff01;于是我&#xff1a; <template>…

SAP MM学习笔记25- SAP中 基本数量单位,发注单位,发注价格单位

SAP 的 MM Master 中有 3种单位。 1&#xff0c;基本数量单位&#xff08; 基本订单单位&#xff0c; 库存管理的最小单位&#xff09; 2&#xff0c;发注单位&#xff08;订单单位&#xff09; 3&#xff0c;发注价格单位&#xff08;订单价格单位&#xff09; 管理 SAP 库…

【jenkins】jenkins流水线构建打包jar,生成docker镜像,重启docker服务的过程,在jenkins上一键完成,实现提交代码自动构建的功能

【jenkins】jenkins流水线构建打包jar&#xff0c;生成docker镜像&#xff0c;重启docker服务的过程&#xff0c;在jenkins上一键完成&#xff0c;实现提交代码自动构建&#xff0c;服务重启&#xff0c;服务发布的功能。一键实现。非常的舒服。 1. 启动脚本 shell脚本 这是 s…

测试部门来了个00后卷王之王,老油条感叹真干不过,但是...

在程序员职场上&#xff0c;什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事&#xff0c;我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事&#xff0c;可遇不可求&#xff0c;向他学习还来不及呢。 真正让人反感的&#xff0c;是技术平平&…

SystemVerilog之接口详解

1.入门实例 测试平台连接到 arbiter的例子&#xff1a;包括测试平台, arbiter仲裁器, 时钟发生器 和连接的信号。 ㅤㅤㅤ ㅤ ㅤㅤㅤㅤㅤ Arbiter里面可以自定义发送的权重&#xff0c; 是轮询还是自定义 grant表示仲裁出来的是哪一个&#xff0c;也即只有0&#xff0c;1&am…

基于springboot校园缴费管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

MySQL 索引为什么使用 B+ 树,而不使用红黑树 / B 树 ?

面试官问 &#xff1a;索引为什么使用 B 树&#xff0c;而不使用 B 树&#xff0c;不使用红黑树呢 首先 B 树和 B 树 都是多叉搜索树&#xff0c;然后我们先来观察一下 B 树和 B 树的数据结构&#xff1a; B 树的数据结构实现 >> B 树的数据结构实现 >> 【B 树相…

JAVASE---数组的定义与使用

数组的基本概念 什么是数组 数组是具有相同类型元素的集合&#xff0c;在内存中连续存储。 1. 数组中存放的元素其类型相同 2. 数组的空间是连在一起的 3. 每个空间有自己的编号&#xff0c;起始位置的编号为0&#xff0c;即数组的下标 数组的创建及初始化 数组的创建 T[…

【Unity】UI的一些简单知识

Canvas 新建一个Canvas Render Mode Canvas 中有一个Render Mode&#xff08;渲染模式&#xff09;&#xff0c;有三种渲染模式: Screen Space-Overlay &#xff08;屏幕空间&#xff09;Screen Space-Camara 、 World Space 其中&#xff0c;Space- Overlay是默认显示在…

Docker容器基础

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、Docker概述1、docker是什么2、Docker的设计宗旨3、容器在内核中支持2种重要技术&#xff1a; 三、Docker的核心概念四、Docker相关命令1.安装依赖包2.设置阿里云…

《qt quick核心编程》笔记四

11 Model/View Delegate实际上可以看成是Item的一个模板 11.1 ListView ListView用于显示一个条目列表&#xff0c;数据来自于Model&#xff0c;每个条目的外观来自于Delegate 要使用ListView必须指定一个Model、一个Delegate Model可以是QML内建类型&#xff0c;如ListModel…

2023年武汉市中等职业教育网络安全赛项竞赛试题——综合靶机渗透测试解析教程

任务一&#xff1a;综合靶机渗透测试 任务环境说明&#xff1a; 服务器场景&#xff1a;ZHCS-2&#xff08;关闭连接&#xff09; 服务器场景操作系统&#xff1a;版本不详 大家需要靶机环境可以私信我获取 1.扫描目标靶机将靶机开放的所有端口&#xff0c;当作flag提交&am…

【学会动态规划】乘积为正数的最长子数组长度(21)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

ESP32 历程解析

最近在用esp32做项目&#xff0c;记录一下 使用的esp32 的官方历程的作用 一、USB历程 1.host 1) cdc_acm_host 这个历程可以用来驱动 usb的虚拟串口从机 cdc__vcp 和 cdc_acm 方式虚拟的串口需要根据自己的设备 修改 VID 和 PID /*cdc-acm*/ #define EXAMPLE_US…

非计算机科班如何顺利转码进入计算机领域?

文章目录 如何规划才能实现转码&#xff1f;计算机岗位发展前景&#xff1f;现阶段转码 总结 &#x1f389;欢迎来到Java学习路线专栏~探索非计算机科班如何顺利转码进入计算机领域 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f3…

8.16日 算法做题【4道题】

8. 分行从上往下打印二叉树 &#xff08; 利用两个队列遍历 &#xff09; 利用数组个数 进行遍历 原题链接 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(N…

工业设备状态监测如何实现从技术试点到规模实施?

工业企业正逐步引入基于人工智能的持续监控设备健康状况系统&#xff0c;这对工业维护领域带来了颠覆性的影响。然而&#xff0c;与任何新技术一样&#xff0c;要实现其最大价值&#xff0c;需要克服一些挑战。在数字化转型中&#xff0c;成功实现工业设备状态监测的从技术试点…

企业什么时候需要PMO?PMO的作用和职责是什么?

在当今复杂的商业环境中&#xff0c;企业依靠高效的项目管理来推动成功和实现战略目标。这就是**项目管理办公室**&#xff08;PMO&#xff09;发挥作用的地方。那么&#xff0c;PMO在企业中的作用和职责究竟是什么&#xff1f;本文就这个问题来做个探讨。 PMO &#xff08;项…