05 python数据容器
5.1 数据容器认识

5.2 python列表
5.2.1 列表的定义
'''
 演示数据容器之:list
 语法:[元素,元素,....]
 '''
#定义一个列表List
 List = ['itheima','uityu','gsdfg']
 List1 = ['itheima','6666','True']
 print(List)
 print(List1)
 print(type(List))
 print(type(List1))
#定义嵌套列表
 List2 = [[1,2,3],['dadd','dadad','fefefe']]
 print(List2)
 print(type(List2))
5.2.2 列表的下标索引
''' 通过下标索引取出对应位置的数据 '''#定义列表 List = ['tom','python','lalal']#列表[下标索引],从前向后从0开始,每次+1, 从后往前从-1开始,每次-1 print(List[0]) print(List[1]) print(List[-1])#定义嵌套列表 List1 = [[1,2,3],[123,333,444]] #取出嵌套索引的元素 print(List1[0][1]) print(List1[1][-2])
5.2.3 列表的常用操作方法

'''
演示数据容器之:List列表常用操作
'''my_list = [11111,'num',['qqqqq',676767]]#1.1 查找某元素在列表内的下标索引                           列表.index
index = my_list.index(['qqqqq',676767])
print(f'[qqqqq,676767]在列表中的下标索引是:{index}')# 1.2如果查找的元素不存在,会报错
# index = my_list.index(0000)
# print(f'0000在列表中的下标索引是:{index}')#2 修改特定下标索引的值
my_list[0] = 9999
print(f'列表被修改后的值是:{my_list}')#3 在特定位置插入新元素                                    列表.insert
my_list.insert(1,777777)
print(f'列表插入元素后它的结果是:{my_list}')#4 在元素列表中追加一个元素,在列表尾部加入新元素               列表.append
my_list.append('学python')
print(f'列表在追加元素后,结果是:{my_list}')#5 在元素列表中追加一个新列表,在列表尾部加入新列表              列表.extend
my_list2 = [1,'best']
my_list.extend(my_list2)
print(f'列表在追加列表后,结果是:{my_list}')#6 删除列表中的元素(两种方法)
my_list3 = [11111,'num',['qqqqq',676767]]
#6.1 del方法  列表[下标]
del my_list3[2][1]
print(f'del方法删除后的结果是{my_list3}')
#6.2 方法2: 列表.pop(下标)                                 列表.pop
my_list3 = [11111,'num',['qqqqq',676767]]
my_list3.pop(1)
print(f'列表.pop(下标)方法删除后的结果是{my_list3}')#7  删除某元素在列表的第一个匹配项                             列表.remove
my_list4 = [11111,11111,111111,111111,'num','num','num',['qqqqq',676767]]
my_list4.remove('num')
my_list4.remove('num')
my_list4.remove('num')
print(f'通过remove方法移除元素后,列表的结果是:{my_list4}')#8 清空列表                                                列表.clear
my_list4.clear()
print(f'列表被清空了,结果是:{my_list4}')#9  统计列表内某元素的数量                                    列表.count
my_list5 = [11111,11111,111111,111111,'num','num','num',['qqqqq',676767]]
count = my_list5.count('num')
print(f'列表中num的数量为:{count}')#统计列表中有多少元素                                         len(列表)
my_list6 = [11111,11111,111111,111111,'num','num','num',['qqqqq',676767]]
count = len(my_list6)
print(f'列表中的元素数量为:{count}')
 
5.2.4 列表的基础操作案例

age = [21,25,21,23,22,20]#追加31到列表末尾 age.append(31) print(age)#追加新列表到列表尾部 age1 = [29,33,30] age.extend(age1) print(age)#取出第一个元素 age.pop(0) print(age)#取出最后一个元素 del age[7] print(age)#查看31在列表中的下表位置 index = age.index(31) print(index)
5.3 元组
5.3.1 元组的定义和操作
'''
演示tuple元组的定义和操作
'''
#定义元祖
t1 = (1,'hello',True)
t2 = ()
t3 = tuple()
print(f't1的类型是{type(t1)},内容是{t1}')
print(f't2的类型是{type(t2)},内容是{t2}')
print(f't3的类型是{type(t3)},内容是{t3}')#定义单个元素的元素(单个元素需要带上单个逗号)
t4 = (1,)
t5 = (2)
print(f't4的类型是{type(t4)},内容是{t4}')
print(f't5的类型是{type(t5)},内容是{t5}')# 元组的嵌套
t6 = ((1,2,3),(9,0,34))
print(f't6的类型是{type(t6)},内容是{t6}')# 下标索引取出内容
num = t6[1][1]
print(f'从嵌套元祖中取出的数据是:{num}')#元组的操作:index查找方法
t1 = (1,0,'hello',True,False,True,False,True,False,'hhhh')
index = t1.index(False)
print(f'True在t1中的下标是:{index}')#元组的操作: count统计方法
num = t1.count(True)
print(f'在元祖中统计True的数量有{num}个')#元祖的操作:len函数统计元组元素的的数量
num = len(t1)
print(f'元祖的数量有:{num}个')#元组的遍历 while循环
index = 0
while index < len(t1):print(f"元组的元素有:{t1[index]}")index += 1#元组的遍历 for循环
for i in t1:print(f"2元组的元素有:{i}")# 定义一个元组
#元组的元素不可修改,但元组内列表内容元素可以修改
t10 = (1,2,[3333,5555])
print(f't10的内容是:{t10}')
t10[2][0] = '黑马python'
t10[2][1] = '西八'
print(f't10的内容是:{t10}') 
5.3.2 元组的基本操作案例

#定义元组
information = ('周几轮',18,['basketball','rap'])#查询年龄所在下标位置
index = information.index(18)
print(f'年龄所在下标位置:{index}')#查询学生姓名
name = information[0]
print(f"学生姓名是{name}")#删除学生爱好basketball
del information[2][0]
print(information)#增加爱好dance
information[2].append('dance')
print(information) 
5.4 字符串
5.4.1 字符串的定义和操作

'''
演示以数据容器的角色,学习字符串的相关操作
'''my_str = 'python learning time'
#通过下标索引取值
a = my_str[3]
b = my_str[-6]
print(f'下标为2的值是:{a},下标为-6的值是{b}')# index方法
c = my_str.index('learning')
print(f'learing的起始下标是:{c}')#replace方法
new_my_str = my_str.replace("i",'程序')
print(f'{my_str}替换i后结果是:{new_my_str}')#split方法 字符串的分割
my_str3 = 'aaabbaddaeeaggakka'
my_str3_list = my_str3.split('a')
print(f'字符串{my_str3}按照a进行split分割后得到:{my_str3_list},类型是:{type(my_str3_list)}')#strip方法  去除字符串收尾元素
my_str = '  123python   learning   time21   '
new_my_str = my_str.split() #不传入参数,则去除首尾空格
print(new_my_str)
new_my_str2 = my_str.split('12')
print(new_my_str2)#统计字符串某字符串出现的次数
my_str = '  123python   learning   time21   '
count = my_str.count('2')
print(f'2出现的次数是{count}')#统计字符串的长度
count = len(my_str)
print(f'字符串{my_str}的长度是{count}')#字符串的while的循环遍历
my_str2 = 'whoiam'
index = 0
while index < len(my_str2):print(my_str2[index])index += 1#字符串的for的循环遍历
for i in my_str3:print(i) 
5.4.2字符串的大小比较
'''
演示字符串的大小比较
'''#abc 比较abd
print(f"abc 小于 abd的结果是:{'abd' > 'abc'}")#ab比较a
print(f"a小于 ab的结果是:{'ab' > 'a'}")#ab比较A
print(f"A小于 a的结果是:{'a' > 'A'}")#key1比较key2
print(f"key1小于 key2的结果是:{'key2' > 'key1'}") 
5.4.3字符串的基础操作案例

str = 'itheima itcast boxuegu'#统计字符串内it数量
count = str.count('it')
print(f'字符串内it数量有:{count}')#将空格替换为|
new_str = str.replace(' ','|')
print(f'将字符串{str}内空格替换为|的结果为{new_str}')#按照|字符分割为列表
new_str_list = new_str.split("|")
print(new_str_list) 
5.5 对数据容器进行切片操作
5.5.1 演示对序列进行切片操作
'''
演示对序列进行切片操作
'''#对list进行切片,从1开始,4结束,步长1
my_list = [0,1,2,3,4,5,6]
re = my_list[1:4]       #步长默认1,可以不写
print(f'结果1:{re}')#对tuple进行切片,最开始,到最后结束,步长1
my_tuple = (0,1,2,3,4,5,6)
re2 = my_tuple[:]       #步长默认1,可以不写
print(f'结果2:{re2}')#对str进行切片,最开始,到最后结束,步长2
my_str = '0123456'
re3 = my_str[::2]
print(f'结果3:{re3}')#对str进行切片,最开始,到最后结束,步长-1
my_str = '0,1,2,3,4,5,6'
re4 = my_str[::-1]
print(f'结果4:{re4}')#对列表进行切片,从3开始,1结束,步长-1
my_list = [0,1,2,3,4,5,6,7,8,9,100]
re5 = my_list[3:1:-1]
print(f'结果5:{re5}')#对元祖进行切片,最开始,到最后结束,步长-2
my_tuple = (0,1,2,3,4,5,6,3333,7,89,99,99999)
re6 = my_tuple[::-2]
print(f'结果6:{re6}')
 
5.5.2 对数据容器操作的基础案例

str = '万过薪月,员序程马黑来,nohtyp学'#方法一   切片,倒序取出
re = str[9:4:-1]
print(re)#方法二  倒序取出,然后切片
re2 = str[::-1][9:14]
print(re2)#方法三,split分割,replace分割“来”为空,倒序字符串
re3 = str.split(',')[1].replace('来','')[::-1]
print(re3)
 
5.6 集合
5.6.1 集合的定义和操作
'''
演示数据容器集合
'''
#定义集合  集合会去重,不支持重复元素
my_set = {'sss','qqq','wwww','rrr','ww'}
my_set_empty = set() #定义空集合
print(f'{my_set},{type(my_set)}')
print(f'{my_set_empty},{type(my_set_empty)}')#添加新元素
my_set.add("python")
print(f'{my_set}')#移除元素
my_set.remove('python')
print(f'{my_set}')#从集合中随机取出元素
element =my_set.pop()
print(f'{my_set},{element}')#清空集合
my_set.clear()
print(f'{my_set}')#取出两个集合的差集  会产生新集合,集合1和2不变
set1 = {1,2,3}
set2 = {1,5,3}
set3 = set1.difference(set2)
print(f'{set1},{set2},{set3}')#消除两个集合的差集  不会产生新集合,集合1变
set1 = {1,2,3}
set2 = {1,5,3}
set3 = set1.difference_update(set2)
print(f'{set1},{set2}')#两个集合合并    会产生新集合,集合1和2不变
set1 = {1,2,3}
set2 = {1,5,3}
set3 = set1.union(set2)
print(f'{set1},{set2},{set3}')#统计集合数量
count = len(set3)
print(f'{count}')#集合的遍历
#集合不支持下标索引,不可以while循环
for i in set3:print(f"{i}")'''
集合的基本操作案例
'''
my_list = [1,2,3,4,5,6,7,8,9,0,5,6,5,3,21,1,334,4,3,2,1]#定义空集合
set = set()#通过for循环遍历列表
#将列表中元素添加到集合中
for i in my_list:print(f'{i}')set.add(i)
print(f"{set}")
 
5.7 字典
5.7.1 字典的定义和操作
'''
演示字典的定义
'''#定义字典  字典中的key不可以重复 {key,value}
my_dict = {'网咯红':99 ,'周几轮':88 ,'林俊杰':77 }
#定义空字典
my_dict2 = {}
my_dict3 = dict()
print(f'{my_dict},{type(my_dict)},\n'f'{my_dict2},{type(my_dict2)},\n'f'{my_dict3},{type(my_dict3)}')#从字典中基于key获取value
score = my_dict['林俊杰']
print(f'{score}')#字典的嵌套,key,value可以是任意数据类型,(key不可为字典)
stu_score_dict = {'王力宏':{'aa':77,'bb':55,'cc':66},'周杰伦':{'aa': 47,'bb': 555,'cc': 106},'林俊杰':{'aa': 127,'bb': 545,'cc': 876}
}
print(f'{stu_score_dict}')#查看学生成绩
score = stu_score_dict['周杰伦']['aa']
print(f'{score}')'''
字典的常用操作
'''
my_dict = {'网咯红':99 ,'周几轮':88 ,'林俊杰':77 }
#新增元素
my_dict['张学友'] = 62
print(f'{my_dict}')#更新元素
my_dict['周几轮'] = 9
print(f'{my_dict}')#删除元素score = my_dict.pop('周几轮')
print(f'{my_dict},{score}')#清空元素
my_dict.clear()
print(f'{my_dict}')#遍历字典
#获取全部key
my_dict = {'网咯红':99 ,'周几轮':88 ,'林俊杰':77 }
keys = my_dict.keys()
print(f'{keys}')
# 方式1  通过获取所有key来遍历字典
for key in keys:print(f'{key},{my_dict[key]}')#方式2 通过直接对字典进行for循环,每一次循环得到key
for key in my_dict:print(f'222\t{key},aaaa\t{my_dict[key]}')#统计字典内的元素数量
num = len(my_dict)
print(f'{num}')'''
字典的基本操作案例
'''#定义字典
my_dict = {'王力宏':{'部门':'科技部','工资':3000,'级别':1},'周杰伦':{'部门': '市场部','工资': 5000,'级别': 2},'林俊杰':{'部门': '市场部','工资': 7000,'级别': 3},'张学友':{'部门': '科技部','工资': 4000,'级别': 1},'刘德华':{'部门': '市场部','工资': 6000,'级别': 2}
}
#遍历字典,找到name这个key
for name in my_dict:#判断name key对应的级别是否为1if my_dict[name]['级别'] == 1:#如果是级别加1,工资加1000my_dict[name]['级别'] += 1my_dict[name]['工资'] += 1000
print(f'{my_dict}')
 
5.8 数据容器的通用操作
'''
演示数据容器的通用操作
'''list1  =  [17,27,30,4,45]
tuple1 =  (10,2,3,44,5)
str1   =  'abcdefghij'
set1   =  {1,2,3,4,5}
dict1  =   {'key8':9,'key2':8,'key6':7,'key4':6,'key7':4}#len元素个数
num = len(list1)
print(f'{num}')num = len(tuple1)
print(f'{num}')num = len(str1)
print(f'{num}')num = len(set1)
print(f'{num}')num = len(dict1)
print(f'{num}')#max 最大元素
print(f'列表 最大的元素是:{max(list1)}')
print(f'元组 最大的元素是:{max(tuple1)}')
print(f'字符串最大的元素是:{max(str1)}')
print(f'集合 最大的元素是:{max(set1)}')
print(f'字典 最大的元素是:{max(dict1)}')#min最小元素
print(f'列表 最小的元素是:{max(list1)}')
print(f'元组 最小的元素是:{max(tuple1)}')
print(f'字符串最小的元素是:{max(str1)}')
print(f'集合 最小的元素是:{max(set1)}')
print(f'字典 最小的元素是:{max(dict1)}')#类型转换:容器转列表
print(f'列表   列表转换为列表的结果是:{list(list1)}')
print(f'元组   元组转换为列表的结果是:{list(tuple1)}')
print(f'字符串转字符串换为列表的结果是:{list(str1)}')
print(f'集合   集合转换为列表的结果是:{list(set1)}')
print(f'字典   字典转换为列表的结果是:{list(dict1)}')#类型转换:容器转元组
print(f'列表   列表转换为元组的结果是:{tuple(list1)}')
print(f'元组   元组转换为元组的结果是:{tuple(tuple1)}')
print(f'字符串转字符串换为元组的结果是:{tuple(str1)}')
print(f'集合   集合转换为元组的结果是:{tuple(set1)}')
print(f'字典   字典转换为元组的结果是:{tuple(dict1)}')#类型转换:容器转字符串
print(f'列表   列表转换为字符串的结果是:{str(list1)}')
print(f'元组   元组转换为字符串的结果是:{str(tuple1)}')
print(f'字符串转字符串换为字符串结果是:  {str(str1)}')
print(f'集合   集合转换为字符串的结果是:{str(set1)}')
print(f'字典   字典转换为字符串的结果是:{str(dict1)}')#类型转换:容器转集合
print(f'列表   列表转换为集合的结果是:{set(list1)}')
print(f'元组   元组转换为集合的结果是:{set(tuple1)}')
print(f'字符串  字符串换为集合的结果是:{set(str1)}')
print(f'集合   集合转换为集合的结果是:{set(set1)}')
print(f'字典   字典转换为集合的结果是:{set(dict1)}')#容器的通用排序功能 排序后结果会变成列表对象
print(f'列表   列表排序的结果是:{sorted(list1)}')
print(f'元组   元组排序的结果是:{sorted(tuple1)}')
print(f'字符串  字符排序的结果是:{sorted(str1)}')
print(f'集合   集合排序的结果是:{sorted(set1)}')
print(f'字典   字典排序的结果是:{sorted(dict1)}')#反向排序
print(f'列表   列表反向排序的结果是:{sorted(list1,reverse=True)}')
print(f'元组  元组反向排序的结果是:{sorted(tuple1,reverse=True)}')
print(f'字符串  字符反向排序的结果是: {sorted(str1,reverse=True)}')
print(f'集合   集合反向排序的结果是: {sorted(set1,reverse=True)}')
print(f'字典   字典反向排序的结果是:{sorted(dict1,reverse=True)}')
相关文章:
05 python数据容器
5.1 数据容器认识 5.2 python列表 5.2.1 列表的定义 演示数据容器之:list 语法:[元素,元素,....] #定义一个列表List List [itheima,uityu,gsdfg] List1 [itheima,6666,True] print(List) print(List1) print(type(List)) pr…...
相机倾斜棋盘格标定全记录 vs200+opencv安装
论文参考是这个 Geiger A, Moosmann F, Car , et al. Automatic camera and range sensor calibration using a single shot[C]//Robotics and Automation (ICRA), 2012 IEEE International Conference on. IEEE, 2012: 3936-3943. 代码是这个github 花了一上午配好了c环境。。…...
QT- QT-lximagerEidtor图片编辑器
QT- QT-lximagerEidtor图片编辑器 一、演示效果二、关键程序三、下载链接 功能如下: 1、缩放、旋转、翻转和调整图像大小 2、幻灯片 3、缩略图栏(左、上或下);不同的缩略图大小 4、Exif数据栏 5、内联图像重命名 6、自定义快捷方式…...
PyQt 如何通过连续点击托盘图标显示隐藏主窗口并且在主窗口隐藏时调整界面到托盘图标附近
不废话直接看代码 # -*- codingutf-8 -*- # # author: Ruben # mail: 773849069qq.com # time: 2023/12/8 # u""" 一个托盘图标的小部件 """ from Qt import QtWidgets, QtGui, QtCore# --*--*--*--*--*--*--*--*--*--…...
什么是纯净IP?如何判断IP地址的纯净度?有哪些干净IP推荐?
您是否想知道什么使代理“干净”或如何确保您的代理不会将您列入网站的黑名单?对于通过代理访问网络的人来说,干净的代理是无缝在线体验的重要组成部分。在这篇文章中,我们将深入研究干净代理的世界,并探讨决定其质量的因素。 一、…...
MySQL和Minio数据备份
文章目录 一、MySQL数据备份1. MySQL客户端2. 数据增量备份3. 数据增量还原4. 数据全量备份5. 数据全量还原 二、Minio数据备份1. Minio客户端2. 数据备份3. 数据还原 三、其他参考1. 设置定时备份2. 数据拷贝到其他服务器3. MySQL其他语句 一、MySQL数据备份 Linux环境&#…...
在Go中过滤范型集合:性能回顾
在一个真实的 Golang 场景中使用泛型,同时寻找与 Stream filter(Predicate<? super T> predicate)和 Python list comprehension 等同的函数。我没有依赖现有的包,而是选择自己写一个过滤函数,以达到学习的目的 func filterStrings(c…...
MATLAB 最小二乘直线拟合方法二 (36)
MATLAB 最小二乘直线拟合方法二 (36) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 这里介绍另一种拟合直线点云的方法,更为简单方便,结果与前者一致,主要内容直接复制代码使用即可,原理简单看代码即可,下面是具体的实现和拟合结果展示 二、算法实现 1.代码 代…...
Python 实现:OCR在图片中提取文字(基于Gradio实现)
Paddle OCR PaddleOCR 基于深度学习技术实现的,使用十分简单。 先看效果 可以看出来识别效果还是不错的,里面的“湿”字识别成了繁体字。如果不是连体字,就不会出现这个问题。 1.测试环境 操作系统:Win10 Python:3…...
idea插件开发报错: ZipException opening “slf4j.jar“: zip END header not found
错误信息 E:\idea-workspace\#idea-plugin\JSON2Object\src\main\java\com\hgy\plugin\json2object\GenerateAction.java:1: 错误: 无法访问com.hgy.plugin.json2object package com.hgy.plugin.json2object; ^ZipException opening "slf4j.jar": zip END header no…...
【Linux】多线程编程
目录 1. 线程基础知识 2. 线程创建 3. 线程ID(TID) 4. 线程终止 5. 线程取消 6. 线程等待 7. 线程分离 8. 线程互斥 8.1 初始化互斥量 8.2 销毁互斥量 8.3 互斥量加锁和解锁 9. 可重入和线程安全 10. 线程同步之条件变量 10.1 初始化条件变…...
【Mysql】InnoDB的表空间(九)
概述 表空间是一个在 InnoDB 中比较抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;而对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd 的实际文件。可以把表空间想象成由很多个页组成的池子&…...
【09】ES6:Set 和 Map 数据结构
一、Set 1、基本语法 定义 Set 是一系列无序、没有重复值的数据集合。数组是一系列有序(下标索引)的数据集合。 Set 本身是一个构造函数,用来生成 Set 数据结构。 const s new Set() [2, 3, 5, 4, 5, 2, 2].forEach(x > s.add(x))fo…...
Java通过documents4j和libreoffice把word转为pdf
文章目录 word转pdf的相关第三方jar说明Linux系统安装LibreOffice在线安装离线安装word转pdf验证 Java工具类代码 word转pdf的相关第三方jar说明 docx4j 免费开源、稍微复杂点的word,样式完全乱了,且xalan升级为2.7.3后会报错。poi 免费开源、官方文档少…...
物联网时代的访问控制研究综述
A survey on Access Control in the Age of Internet of Things 文章目录 A B S T R A C T引言A. Comparison Between This Paper and Existing SurveysB. Contributions II.ACCESS CONTROL BACKGROUNDIII. ACCESS CONTROL CHALLENGES IN IOT SEARCHA. Characteristics of IoT …...
【产品经理】需求池和版本树
在这个人人都是产品经理的时代,每位入行的产品人进阶速度与到达高度各有不同。本文作者结合自身三年产品行业的经历,根据案例拆解产品行业的极简研发过程、需求池、版本树、产品自我优化等相关具体方法论。 一、产品研发的极简过程 1. 产品概述 产品就…...
Qt图像处理-OpenCv中Mat与QImage互转
Qt图像处理时需要OpenCv中Mat与QImage互转,具体代码如下 创建EditPhoto,头文件,使用前需要配置好opencv #include <QObject> #include <QImage> #include <QDebug>#include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> …...
构建外卖小程序:技术代码实践
在这个数字化的时代,外卖小程序已经成为餐饮业的一项重要工具。在本文中,我们将通过一些简单而实用的技术代码,向您展示如何构建一个基本的外卖小程序。我们将使用微信小程序平台作为例子,但这些原理同样适用于其他小程序平台。 …...
IDEA中显示方法、类注释信息
目录 一、IDEA测试版本及环境二、操作步骤2.1 鼠标悬停在某一个方法上,从而显示方法的注释信息2.2 调用方法时同步显示方法注释信息2.3 在new一个对象时,这个对象有很多重载的构造方法,想要重载的构造函数都显示出来 一、IDEA测试版本及环境 …...
《数据结构、算法与应用C++语言描述》- 堆排序 - 借助priority_queue的C++实现
堆排序 完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_27HeapSort 定义 借助堆进行排序。先用n个待排序的元素初始化一个小根堆,然后从堆中逐个提取(即删除元素)元素。初始化的时间复杂度为O(n),大根堆中每…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
