标签: set-intersection

如何使用 CritieraQuery 获取相交查询?

给定

 @Entity
 public class Document {

    @Id
    @Column(name = "DOCUMENT_ID")
    private Long id;

    @ElementCollection
    @CollectionTable(
       name="TAG",
       joinColumns=@JoinColumn(name="DOCUMENT_ID")
    )
    @Column(name="TAG")
    private Set<String> tags;    
 }
Run Code Online (Sandbox Code Playgroud)

查找带有特定标签集合的所有文档。本质上,EclipseLink 相当于:

SELECT d FROM Document d WHERE :tag1 MEMBER OF d.tags
INTERSECT
SELECT d FROM Document d WHERE :tag2 MEMBER OF d.tags
...
SELECT d FROM Document d WHERE :tagn MEMBER OF d.tags
Run Code Online (Sandbox Code Playgroud)

但使用 JPA CritieraQuery。

jpa criteria-api intersect set-intersection criteriaquery

2
推荐指数
1
解决办法
3158
查看次数

如何创建类似于"集合交叉点"的内容,以允许单个集合中缺少项目n/1次或更多次?

我想创建一个字符串列表:

a)是2个或更多列表的交互(所有列表中出现的字符串),例如:

words = [["a", "b", "c"], ["d", "a", "b"], ["f", "a", "g"]]
set.intersection(*(set(t) for t in words))
Run Code Online (Sandbox Code Playgroud)

返回:

set(['a'])
Run Code Online (Sandbox Code Playgroud)

b)是两个或多个列表的交集,除了单个字符串可能从单个集合中丢失n次,或者换句话说,在我认为必要时,字符串可能从1个或多个列表中丢失.

所以说我希望允许它从单个列表中丢失,将该逻辑应用于我应该获得的上述单词变量:

set(['a', 'b'])
Run Code Online (Sandbox Code Playgroud)

如果我允许它从2套中丢失,它将返回上述单词变量中的所有字符.

我已经设法做了一个),但我怎么做b)

python list set set-intersection python-2.7

2
推荐指数
1
解决办法
61
查看次数

在Fortran中查找两个数组的交集

我正在尝试在Fortran中生成两个1-D数组的交叉.

目的是使用此交集作为掩码,maxloc以便我可以将最多的几个元素从一个数组拉到另一个数组(类似于在最大堆中重复删除根的行为).

目前我只是在将索引中maxloc的值插入第二个数组后,将找到的索引处的值设置为零,但我希望Fortran有一个聪明的与掩码相关的方法.(在最大检索过程中保留原始数组也很好)

arrays fortran fortran90 set-intersection fortran95

2
推荐指数
1
解决办法
1569
查看次数

如何找到两组的交集?

从包含来自两个集合的值的 2 个集合创建子集的最有效方法是什么?任何 C++ STL 库都可以用来解决这个问题(如果可能的话,不用 Boost 库):

Set A = {2, 3, 5, 7, 11, ...}
Set B = {1, 3, 5, 7, 9, 11, ...}

Subset should be = {3, 5, 7, 11, ...}
Run Code Online (Sandbox Code Playgroud)

c++ algorithm stl set set-intersection

2
推荐指数
1
解决办法
7889
查看次数

检查两个字典是否不相交

有没有比计算它们的交集更容易/更快的方法来找出两个字典是否不相交?

对于交叉点,我找到了这个答案,所以不相交测试看起来像这样:

def dicts_disjoint(a, b):
    keys_a = set(a.keys())
    keys_b = set(b.keys())
    intersection = keys_a & keys_b
    return not len(intersection)
Run Code Online (Sandbox Code Playgroud)

但是我认为这是低效的,因为它总是计算整个交叉点(没有短路退出)。

有什么更好的想法吗?

python dictionary disjoint-sets set-intersection

2
推荐指数
1
解决办法
940
查看次数

两个 std::unordered_map 的交集

我有两个 std::unordered_map

std::unordered_map<int, int> mp1;
std::unordered_map<int, int> mp2;
Run Code Online (Sandbox Code Playgroud)

我需要找到键值对的交集并将其存储在表单的另一个映射中。

std::unordered_map<int, int> mp;
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点??

c++ unordered-map set-intersection

2
推荐指数
1
解决办法
318
查看次数

EF Core 子元素的列表和属性之间的相交返回“ArgumentNullException”

我目前正在尝试将 ID 列表与数据库实体的子属性相交。

这样做的目的是查找所有列表 Id 与子实体“Location”中至少一个实体相匹配的所有“Form”记录。我相信 SQL 等效项将在连接表“Locations”上执行 IN。

相关元素的结构如下:(我故意省略了所有其他属性)。

public class Form
{

    [Column("FormId"), DatabaseGenerated(DatabaseGeneratedOption.Identity), Key]
    public Guid Id { get; set; }
    public virtual ICollection<Location> Locations { get; set; }
}

public class Location
{
    [Column("LocationId"), DatabaseGenerated(DatabaseGeneratedOption.Identity), Key]
    public Guid Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行以下操作:

var locationIdsL = locationIds.Split(',').Select(Guid.Parse).ToList();

return baseQuery.Include(x => x.Locations).Where(x => x.Locations.Select(y => y.Id).Intersect(locationIdsL).Count() == locationIdsL.Count);
Run Code Online (Sandbox Code Playgroud)

* 假设该locationIdsL变量是一个有效的 Guid 列表。

上面的代码返回以下异常:

System.ArgumentNullException:值不能为空。(参数“参数”)位于 System.Linq.Expressions.Expression.Lambda(表达式主体、字符串名称、布尔型 tailCall、IEnumerable`1 参数)位于 System.Linq.Expressions.Expression.Lambda(表达式主体、ParameterExpression[] 参数)在 Microsoft.EntityFrameworkCore.Query.Internal.NavigationExpandingExpressionVisitor.ReducingExpressionVisitor.Visit(表达式表达式) 在 System.Dynamic.Utils.ExpressionVisitorUtils.VisitArguments(ExpressionVisitor 访问者,IArgumentProvider …

c# lambda entity-framework set-intersection entity-framework-core

2
推荐指数
1
解决办法
1342
查看次数

如何正确迭代交叉点

我试图迭代一系列交叉点,其中每个迭代是一组新行的交集.我的代码看起来有点像下面这样:

    for liness in range(len(NNCatelogue)):
        for iii in [iii for iii, y in enumerate(NNCatelogue[iii]) if y in set(NNCatelogue[liness]).intersection(catid)]:
            print iii, y
Run Code Online (Sandbox Code Playgroud)

NNCatelogue本质上是一个1268 X 12矩阵,每个新的liness迭代都会调用一个新行.如果我只是输入我想要的行号(即:0,1,2 ......),那么我得到预期的输出(前面没有for循环).上面写的代码给出了以下输出:

    10 C-18-1064
    4 C-18-1122
    4 C-18-1122
    5 C-18-1122
    5 C-18-1122
    7 C-18-1122
    8 C-18-1122
    9 C-18-1122
    10 C-18-1122
    11 C-18-1122
    6 C-18-1122
    ...
Run Code Online (Sandbox Code Playgroud)

预期产量应为:

  0 C-18-1
  1 C-18-259
  2 C-18-303
  3 C-18-304
  4 C-18-309
  5 C-18-324
  6 C-18-335
  7 C-18-351
  8 C-18-372
  9 C-18-373
  10 C-18-518
  11 C-18-8
Run Code Online (Sandbox Code Playgroud)

知道我可能会出错吗?任何帮助是极大的赞赏!

更新:

我尝试了其中一个答案的变体,虽然它更接近我所期待的,但它并不完全存在.这是我尝试过的:

    counter = 0
    for …
Run Code Online (Sandbox Code Playgroud)

python loops set-intersection

1
推荐指数
1
解决办法
190
查看次数

OWL 交集与并集

给定以下三元组,域和范围是并集、交集还是其他?

<http://www.stackoverflow.com/questions/ask> rdfs:domain <http://stackoverflow.com/questions/tagged/rdf> .
<http://www.stackoverflow.com/questions/ask> rdfs:domain <http://stackoverflow.com/questions/tagged/owl> .
<http://www.stackoverflow.com/questions/ask> rdfs:domain <https://www.w3.org/TR/owl-ref/#Boolean> .
<http://www.stackoverflow.com/questions/ask> rdfs:range <http://stackoverflow.com/questions/tagged/rdf> .
<http://www.stackoverflow.com/questions/ask> rdfs:range <http://stackoverflow.com/questions/tagged/owl> .
<http://www.stackoverflow.com/questions/ask> rdfs:range <https://www.w3.org/TR/owl-ref/#Boolean> .
Run Code Online (Sandbox Code Playgroud)


换句话说,http://www.stackoverflow.com/questions/ask谓词是否具有三个域、三个范围,并且可以推断出任何有效的 域-范围配对?


编辑:w3.org 文档中有关范围的说明:

当属性 P 具有多个rdfs:domain属性时,则由带有谓词 P 的三元组的主语表示的资源是属性所声明的所有类的实例rdfs:domain

当 P 具有多个rdfs:range属性时,则具有谓词 P 的三元组的对象所表示的资源是属性所声明的所有类的实例rdfs:range

rdf owl set-intersection set-union

1
推荐指数
1
解决办法
1385
查看次数

查找集合列表中所有集合中出现的元素

我有一个n表示为的整数集合列表lst = [S1, S2, S3 ... Sn],我想找到所有集合的交集。

有没有最佳的方法来做到这一点?

python set set-intersection

1
推荐指数
1
解决办法
1485
查看次数