- python中set的用法_Python中set的用法
weixin_39876645
python中set的用法
python的集合类型和其他语言类似,是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合),intersection(交),difference(差)和sysmmetricdifference(对称差集)等数学运算,和我们初中数学学的集合的非常的相似。1先看下python集合类型的不重复性,这方面做一些去重处理非
- python 集合概念set用法
shuwenting
python基础
Python中set的用法python的集合类型和其他语言类似,是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合),intersection(交),difference(差)和sysmmetricdifference(对称差集)等数学运算,和我们初中数学学的集合的非常的相似。1先看下python集合类型的不重复
- bedtools:提取指定范围的vcf
AnnyYoung
笔记生物信息软件数据分析centoslinux
方法:bedtoolsintersect-ainput.vcf.gz-bwes.bed-header>input.wes.vcf参数:Tool:bedtoolsintersect(akaintersectBed)Version:v2.31.1Summary:Reportoverlapsbetweentwofeaturefiles.Usage:bedtoolsintersect[OPTIONS]-a
- Java面试题之:sql优化方式
m0_74825565
面试学习路线阿里巴巴javasql开发语言
Java面试题之:sql优化方式一、索引查询、避免全表扫描二、查询数据尽量避免使用or三、连续查询,能用between就用四、where查询条件,对字段进行表达式操作五、where查询条件,对字段进行函数操作六、多张数据表查询数据,使用innerjoin七、in()和exists()八、使用like进行数据表查询时,能用%就不建议使用双%九、最左优先十、精确类型匹配十一、表越小,查询越快十二、数据
- GEE 训练教程——基于Sentinel-2数据的SAVI 和 NDVI 图层添加到地图上的可视化分析
此星光明
GEE教程训练开发语言sentinelgeesavindvi可视化教程
目录简介指数函数expression(expression,map)Arguments:Returns:Image代码解释代码结果简介GEE训练教程——基于Sentinel-2数据的SAVI和NDVI图层添加到地图上的可视化分析指数SAVI(Soil-AdjustedVegetationIndex)和NDVI(NormalizedDifferenceVegetationIndex)都是用于遥感数据
- gsea结果分析图怎么看_利用GSEA对基因表达数据做富集分析
骆逸
gsea结果分析图怎么看
imageGeneSetEnrichmentAnalysis(GSEA)isacomputationalmethodthatdetermineswhetheranaprioridefinedsetofgenesshowsstatisticallysignificant,concordantdifferencesbetweentwobiologicalstates(e.g.phenotypes).用
- JPQL BETWEEN用法详解与实例
t0_54program
pythonwindows开发语言个人开发
在Java持久化查询语言(JPQL)中,BETWEEN关键字用于在WHERE子句中指定一个值的范围。通过使用BETWEEN,可以方便地筛选出符合特定范围条件的数据。本文将通过一个具体的实例,详细讲解如何使用JPQL的BETWEEN关键字。实体类定义首先,我们定义一个Employee实体类,用于表示员工信息:java复制@EntitypublicclassEmployee{@Id@Generated
- 在自学嵌套if语句时遇到TypeError: ‘>=‘ not supported between instances of ‘str‘ and ‘int‘问题的分析
sjzWY
python
练习:小王=5小王='男'if小王=='男':print('男')if小王>=60:print('可以退休。')else:print('不可退休。')else:print('男60女55。')print(type(小王))输出的结果是:TypeError:'>='notsupportedbetweeninstancesof'str'and'int'分析原因,原来问题出在变量赋值上,“小王='男'”
- 五子棋ai启发式搜索_一种快速而简单的人工智能启发式学习语言的方法
weixin_26630173
python人工智能java机器学习算法
五子棋ai启发式搜索介绍(Introduction)ThespecialthingIfoundwhenIfirststarteddivingintothefieldofArtificialIntelligencewastheinfiniteamountofparallelsbetweenhowneuralnetworkslearnandmysubjectiveexperienceofmyownin
- c语言八数码问题启发式搜索_一种快速且简单的AI启发式语言学习方法
weixin_26632369
pythonjava人工智能编程语言机器学习
c语言八数码问题启发式搜索介绍(Introduction)ThespecialthingIfoundwhenIfirststarteddivingintothefieldofArtificialIntelligencewastheinfiniteamountofparallelsbetweenhowneuralnetworkslearnandmysubjectiveexperienceofmyow
- SQL-DAY 8(SQL窗口函数的应用案例:电商平台订单信息案例分析)
范儿札记
SQLsql数据库database
文章目录一、窗口函数说明1.窗口函数的语句结构2.窗口函数的分类二、案例分析(电商平台订单信息)1.数据准备2.窗口函数之累计计算函数3.窗口函数之排序函数3.窗口函数之偏移分析函数一、窗口函数说明1.窗口函数的语句结构窗口函数的语法格式函数名([expr])over(子句)函数名([expr])over(partitionbyorderbyrowsbetween)其中over关键字后子句包含三个
- 【分割评价指标-nnUNet V2训练】- AutoDL
HUI 别摸鱼了
深度学习PyTorch算法人工智能python
目录一、DSC二、IOU三、VOE(VolumeOverlapError)四、RVD(RelativeVolumeDifference)五、Hausdorff95(95thPercentileofHausdorffDistance)六、ASSD(AverageSymmetricSurfaceDistance)七、MSD(MeanSurfaceDistance)八、NSD(NormalizedSur
- 经典找不同(力扣389)
孙榴莲君
力扣题目leetcode算法数据结构
给定两个字符串s和t,它们只包含小写字母。字符串t由字符串s随机重排,然后在随机位置添加一个字母。请找出在t中被添加的字母。用c语言实现。一、解法一:数组计数charfindTheDifference(char*s,char*t){//[26]代表有26个元素,索引为0---25intarr[26]={0};intlen1=strlen(s),len2=strlen(t);for(inti=0;i
- 8 比例缩放(scale.rs)
Source.Liu
euclid库rusteuclidCAD
scale.rs代码是几何变换库euclid中典型的数据结构和方法的例子,用于处理二维和三维空间中的缩放变换。一、scale.rs文件源码//!Atype-checkedscalingfactorbetweenunits.usecrate::num::One;usecrate::approxord::{max,min};usecrate::{Box2D,Box3D,Point2D,Point3D,
- 进化式架构实例指南
裴辰垚Simone
进化式架构实例指南evolutionary-architecture-by-exampleNavigatethecomplexlandscapeof.NETsoftwarearchitecturewithourstep-by-step,story-likeguide.Unpacktheinterplaybetweenmodularmonoliths,microservices,domain-dri
- lidar_camera_calib代码解读-优化部分
海滩油炸
SLAM标定
碎碎念最近在调研一下non-target方式的相机Lidar联合标定,其中包括HKmars实验室开源的项目GitHub-hku-mars/livox_camera_calib:ThisrepositoryisusedforautomaticcalibrationbetweenhighresolutionLiDARandcameraintargetlessscenes.这个项目在刚开始并没有得到我的
- [JavaWeb]搜索表单区域
亓才孓
csscss3前端javaweb
一.注意事项设置外边距:margin:(参数可省去部分)上下左右二.源代码Tlias智能学习辅助系统/*导航栏样式*/.navbar{background-color:#b5b3b3;/*灰色背景*/display:flex;/*flex弹性布局*/justify-content:space-between;/*左右对齐*/padding:10px;/*内边距*/align-items:cente
- python openpyxl包excel 绘制 线性图表
呜呜呜小吴莫哭
python仿真excel可视化python
https://openpyxl.readthedocs.io/en/stable/charts/line.html说明:来自英文手册未翻译LineChartsLinechartsallowdatatobeplottedagainstafixedaxis.Theyaresimilartoscattercharts,themaindifferenceisthatwithlinechartseachd
- Mybatis 通过数组的下标进行取值
絮落锦乡
java后台javamybatis
1、前端传参样例2、mybaits写法1)、判空0">2)、错误写法0">andT.create_timebetween#{times[0]}and#{times[1]}报错信息2021-08-2414:19:20.537ERROR45552---[nio-8086-exec-7]o.a.c.c.C.[.[.[/].[dispatcherServlet]:Servlet.service()fors
- CentOS 7的下载与安装
Neil Parker
大数据centoslinux运维
一、CentOS7的下载与安装1、下载由于centos7已经停止维护,部分镜像网站移除了对centos7的支持,这里找到了部分现在还可以使用的镜像网站阿里云开源镜像站:https://mirrors.aliyun.com/centos/7/isos/x86_64/北京大学开源镜像站:https://mirrors.pku.edu.cn/centos/7/isos/x86_64/这篇博客中,使用阿里
- Agile PLM Web Service -1
joyopod
AgilePLMservicewebapplicationcrmdescriptordeployment
DevelopingWebServiceExtensionsAboutWebServiceExtensions关于WebserviceExtensionsWebserviceextensions(WSX)isaWebserviceengineenablingcommunicationbetweenAgilePLManddisparatesystemsbothinternalandexternali
- windows 使用pyenv-win 管理多python 版本
little-dog007
windowspython开发语言
链接:GitHub-pyenv-win/pyenv-win:pyenvforWindows.pyenvisasimplepythonversionmanagementtool.ItletsyoueasilyswitchbetweenmultipleversionsofPython.It'ssimple,unobtrusive,andfollowstheUNIXtraditionofsingle-p
- GEE训练教程——基于Landsat C02数据的多指数计算和批量下载
此星光明
GEE教程训练前端数据库javascriptgeeLandsat指数下载
目录简介指数介绍代码解释代码结果简介GEE训练教程——基于LandsatC02数据的多指数计算和批量下载指数介绍NDVI:归一化差异植被指数(NormalizedDifferenceVegetationIndex)是通过比较近红外波段(NIR)和红波段(Red)的反射率来评估植被状况的指数。计算公式为:(NIR-Red)/(NIR+Red)。NDVI值范围从-1到1,数值越高表示植被越茂盛。EVI
- 23.日常算法
三问走天下
#每日算法题算法哈希算法
1.最小绝对差题目来源给你个整数数组arr,其中每个元素都不相同。请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。每对元素对[a,b]如下:a,b均为数组arr中的元素a>minimumAbsDifference(vector&arr){sort(arr.begin(),arr.end());inttarget=arr[1]-arr[0];vector>ret;intn=arr.size
- Pex 项目使用教程
任翊昆Mary
Pex项目使用教程pexPexisajavascript3dlibrary/engineallowingforseamlessdevelopmentbetweenPlaskandWebGLinthebrowser.项目地址:https://gitcode.com/gh_mirrors/pex/pex1.项目的目录结构及介绍Pex项目的目录结构如下:pex-gl/├──assets/├──lib/├
- PEX 开源项目教程
束静研Kody
PEX开源项目教程pexPexisajavascript3dlibrary/engineallowingforseamlessdevelopmentbetweenPlaskandWebGLinthebrowser.项目地址:https://gitcode.com/gh_mirrors/pex/pex项目介绍PEX(PolyethyleneExchange)是一个基于高密度聚乙烯(HDPE)的管道和
- “大模型横扫千军”背后的大数据挖掘--浅谈MapReduce
绒绒毛毛雨
大数据挖掘数据挖掘mapreduce人工智能
文章目录O背景知识1数据挖掘2邦费罗尼原则3TF.IDF4哈希函数5分布式文件系统一、MapReduce基本介绍1.Map任务2.按键分组3.Reduce任务4.节点失效处理5.小测验:在一个大型语料库上有100个map任务和若干reduce任务:二、基于MapReduce的基本运算1.选择(Selection)2.交(Intersection)3.并(Union)4.补(Difference)5
- MATLAB中extractBetween函数用法
jk_101
Matlabmatlab开发语言
目录语法说明示例选择子字符串之间的文本使用模式提取标记之间的文本选择开始和结束位置之间的子字符串在包含或不包含边界的情况下选择文本选择字符向量中位置之间的文本extractBetween函数的功能是提取起点和终点之间的子字符串。语法newStr=extractBetween(str,startPat,endPat)newStr=extractBetween(str,startPos,endPos)
- 北工大计算机网络95分复习——【第五章 网络层】
秋千的千秋
北工大计算机网络95分复习计算机网络网络智能路由器
Networklayer网络层:responsiblefordeliveringpacketsbetweenendpointsovermultiplelinks。负责通过多条链路在端点之间传递数据包。将数据包从源机器路由到目标机器。Hop跳:一个中间路由器。5.1网络层的设计问题P125交换——电路交换(电话网)、包交换/分组交换(数据交换网中的主流交换方式)5.1.1存储转发数据包交换
- Pytorch实现论文:对GAN的交替优化
LJ1147517021
GAN系列生成对抗网络计算机视觉人工智能pytorch机器学习深度学习
简介这次带来的是ClosingtheGapBetweenTheoryandPracticeDuringAlternatingOptimizationforGANs,Gans交替优化中缩小理论与实践的差距这篇论文的一个核心代码在ACGAN模型上的效果测试,核心是修改了损失函数部分的计算。作者的实验是在StyleGAN上进行的。论文简介论文题目:ClosingtheGapBetweenTheoryan
- jQuery 跨域访问的三种方式 No 'Access-Control-Allow-Origin' header is present on the reque
qiaolevip
每天进步一点点学习永无止境跨域众观千象
XMLHttpRequest cannot load http://v.xxx.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. test.html:1
- mysql 分区查询优化
annan211
java分区优化mysql
分区查询优化
引入分区可以给查询带来一定的优势,但同时也会引入一些bug.
分区最大的优点就是优化器可以根据分区函数来过滤掉一些分区,通过分区过滤可以让查询扫描更少的数据。
所以,对于访问分区表来说,很重要的一点是要在where 条件中带入分区,让优化器过滤掉无需访问的分区。
可以通过查看explain执行计划,是否携带 partitions
- MYSQL存储过程中使用游标
chicony
Mysql存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS getUserInfo $$
CREATE PROCEDURE getUserInfo(in date_day datetime)-- -- 实例-- 存储过程名为:getUserInfo-- 参数为:date_day日期格式:2008-03-08-- BEGINdecla
- mysql 和 sqlite 区别
Array_06
sqlite
转载:
http://www.cnblogs.com/ygm900/p/3460663.html
mysql 和 sqlite 区别
SQLITE是单机数据库。功能简约,小型化,追求最大磁盘效率
MYSQL是完善的服务器数据库。功能全面,综合化,追求最大并发效率
MYSQL、Sybase、Oracle等这些都是试用于服务器数据量大功能多需要安装,例如网站访问量比较大的。而sq
- pinyin4j使用
oloz
pinyin4j
首先需要pinyin4j的jar包支持;jar包已上传至附件内
方法一:把汉字转换为拼音;例如:编程转换后则为biancheng
/**
* 将汉字转换为全拼
* @param src 你的需要转换的汉字
* @param isUPPERCASE 是否转换为大写的拼音; true:转换为大写;fal
- 微博发送私信
随意而生
微博
在前面文章中说了如和获取登陆时候所需要的cookie,现在只要拿到最后登陆所需要的cookie,然后抓包分析一下微博私信发送界面
http://weibo.com/message/history?uid=****&name=****
可以发现其发送提交的Post请求和其中的数据,
让后用程序模拟发送POST请求中的数据,带着cookie发送到私信的接入口,就可以实现发私信的功能了。
- jsp
香水浓
jsp
JSP初始化
容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了
JSP执行
这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。
当JSP网页完成初始化后
- 在 Windows 上安装 SVN Subversion 服务端
AdyZhang
SVN
在 Windows 上安装 SVN Subversion 服务端2009-09-16高宏伟哈尔滨市道里区通达街291号
最佳阅读效果请访问原地址:http://blog.donews.com/dukejoe/archive/2009/09/16/1560917.aspx
现在的Subversion已经足够稳定,而且已经进入了它的黄金时段。我们看到大量的项目都在使
- android开发中如何使用 alertDialog从listView中删除数据?
aijuans
android
我现在使用listView展示了很多的配置信息,我现在想在点击其中一条的时候填出 alertDialog,点击确认后就删除该条数据,( ArrayAdapter ,ArrayList,listView 全部删除),我知道在 下面的onItemLongClick 方法中 参数 arg2 是选中的序号,但是我不知道如何继续处理下去 1 2 3
- jdk-6u26-linux-x64.bin 安装
baalwolf
linux
1.上传安装文件(jdk-6u26-linux-x64.bin)
2.修改权限
[root@localhost ~]# ls -l /usr/local/jdk-6u26-linux-x64.bin
3.执行安装文件
[root@localhost ~]# cd /usr/local
[root@localhost local]# ./jdk-6u26-linux-x64.bin&nbs
- MongoDB经典面试题集锦
BigBird2012
mongodb
1.什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
NoSQL是非关系型数据库,NoSQL = Not Only SQL。
关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。
在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。
在考虑数据库的成熟
- JavaScript异步编程Promise模式的6个特性
bijian1013
JavaScriptPromise
Promise是一个非常有价值的构造器,能够帮助你避免使用镶套匿名方法,而使用更具有可读性的方式组装异步代码。这里我们将介绍6个最简单的特性。
在我们开始正式介绍之前,我们想看看Javascript Promise的样子:
var p = new Promise(function(r
- [Zookeeper学习笔记之八]Zookeeper源代码分析之Zookeeper.ZKWatchManager
bit1129
zookeeper
ClientWatchManager接口
//接口的唯一方法materialize用于确定那些Watcher需要被通知
//确定Watcher需要三方面的因素1.事件状态 2.事件类型 3.znode的path
public interface ClientWatchManager {
/**
* Return a set of watchers that should
- 【Scala十五】Scala核心九:隐式转换之二
bit1129
scala
隐式转换存在的必要性,
在Java Swing中,按钮点击事件的处理,转换为Scala的的写法如下:
val button = new JButton
button.addActionListener(
new ActionListener {
def actionPerformed(event: ActionEvent) {
- Android JSON数据的解析与封装小Demo
ronin47
转自:http://www.open-open.com/lib/view/open1420529336406.html
package com.example.jsondemo;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
impor
- [设计]字体创意设计方法谈
brotherlamp
UIui自学ui视频ui教程ui资料
从古至今,文字在我们的生活中是必不可少的事物,我们不能想象没有文字的世界将会是怎样。在平面设计中,UI设计师在文字上所花的心思和功夫最多,因为文字能直观地表达UI设计师所的意念。在文字上的创造设计,直接反映出平面作品的主题。
如设计一幅戴尔笔记本电脑的广告海报,假设海报上没有出现“戴尔”两个文字,即使放上所有戴尔笔记本电脑的图片都不能让人们得知这些电脑是什么品牌。只要写上“戴尔笔
- 单调队列-用一个长度为k的窗在整数数列上移动,求窗里面所包含的数的最大值
bylijinnan
java算法面试题
import java.util.LinkedList;
/*
单调队列 滑动窗口
单调队列是这样的一个队列:队列里面的元素是有序的,是递增或者递减
题目:给定一个长度为N的整数数列a(i),i=0,1,...,N-1和窗长度k.
要求:f(i) = max{a(i-k+1),a(i-k+2),..., a(i)},i = 0,1,...,N-1
问题的另一种描述就
- struts2处理一个form多个submit
chiangfai
struts2
web应用中,为完成不同工作,一个jsp的form标签可能有多个submit。如下代码:
<s:form action="submit" method="post" namespace="/my">
<s:textfield name="msg" label="叙述:">
- shell查找上个月,陷阱及野路子
chenchao051
shell
date -d "-1 month" +%F
以上这段代码,假如在2012/10/31执行,结果并不会出现你预计的9月份,而是会出现八月份,原因是10月份有31天,9月份30天,所以-1 month在10月份看来要减去31天,所以直接到了8月31日这天,这不靠谱。
野路子解决:假设当天日期大于15号
- mysql导出数据中文乱码问题
daizj
mysql中文乱码导数据
解决mysql导入导出数据乱码问题方法:
1、进入mysql,通过如下命令查看数据库编码方式:
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------------------+
| Variable_name&nbs
- SAE部署Smarty出现:Uncaught exception 'SmartyException' with message 'unable to write
dcj3sjt126com
PHPsmartysae
对于SAE出现的问题:Uncaught exception 'SmartyException' with message 'unable to write file...。
官方给出了详细的FAQ:http://sae.sina.com.cn/?m=faqs&catId=11#show_213
解决方案为:
01
$path
- 《教父》系列台词
dcj3sjt126com
Your love is also your weak point.
你的所爱同时也是你的弱点。
If anything in this life is certain, if history has taught us anything, it is
that you can kill anyone.
不顾家的人永远不可能成为一个真正的男人。 &
- mongodb安装与使用
dyy_gusi
mongo
一.MongoDB安装和启动,widndows和linux基本相同
1.下载数据库,
linux:mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz
2.解压文件,并且放置到合适的位置
tar -vxf mongodb-linux-x86_64-ubun
- Git排除目录
geeksun
git
在Git的版本控制中,可能有些文件是不需要加入控制的,那我们在提交代码时就需要忽略这些文件,下面讲讲应该怎么给Git配置一些忽略规则。
有三种方法可以忽略掉这些文件,这三种方法都能达到目的,只不过适用情景不一样。
1. 针对单一工程排除文件
这种方式会让这个工程的所有修改者在克隆代码的同时,也能克隆到过滤规则,而不用自己再写一份,这就能保证所有修改者应用的都是同一
- Ubuntu 创建开机自启动脚本的方法
hongtoushizi
ubuntu
转载自: http://rongjih.blog.163.com/blog/static/33574461201111504843245/
Ubuntu 创建开机自启动脚本的步骤如下:
1) 将你的启动脚本复制到 /etc/init.d目录下 以下假设你的脚本文件名为 test。
2) 设置脚本文件的权限 $ sudo chmod 755
- 第八章 流量复制/AB测试/协程
jinnianshilongnian
nginxluacoroutine
流量复制
在实际开发中经常涉及到项目的升级,而该升级不能简单的上线就完事了,需要验证该升级是否兼容老的上线,因此可能需要并行运行两个项目一段时间进行数据比对和校验,待没问题后再进行上线。这其实就需要进行流量复制,把流量复制到其他服务器上,一种方式是使用如tcpcopy引流;另外我们还可以使用nginx的HttpLuaModule模块中的ngx.location.capture_multi进行并发
- 电商系统商品表设计
lkl
DROP TABLE IF EXISTS `category`; -- 类目表
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `category` (
`id` int(11) NOT NUL
- 修改phpMyAdmin导入SQL文件的大小限制
pda158
sqlmysql
用phpMyAdmin导入mysql数据库时,我的10M的
数据库不能导入,提示mysql数据库最大只能导入2M。
phpMyAdmin数据库导入出错: You probably tried to upload too large file. Please refer to documentation for ways to workaround this limit.
- Tomcat性能调优方案
Sobfist
apachejvmtomcat应用服务器
一、操作系统调优
对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。
【适用场景】 任何项目。
二、Java虚拟机调优
应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。
J
- SQLServer学习笔记
vipbooks
数据结构xml
1、create database school 创建数据库school
2、drop database school 删除数据库school
3、use school 连接到school数据库,使其成为当前数据库
4、create table class(classID int primary key identity not null)
创建一个名为class的表,其有一