我有一个set
Python,我将根据条件从中逐个删除元素。当集合只剩下1个元素时,我需要返回该元素。如何从集合中访问此元素?
一个简化的例子:
S = set(range(5))
for i in range(4):
S = S - {i}
# now S has only 1 element: 4
return ? # how should I access this element
# a lame way is the following
# for e in S:
# return S
用途set.pop
:
>>> {1}.pop()
1
>>>
在您的情况下,它将是:
return S.pop()
但是请注意,这将从集合中删除该项目。如果不希望这样做,则可以使用min
|
max
:
return min(S) # 'max' would also work here
演示:
>>> S = {1}
>>> min(S)
1
>>> S
set([1])
>>> max(S)
1
>>> S
set([1])
>>>
这是一个算法问题。如果我错过了Python中任何有帮助的现有函数,请大喊一声。 给定一组元素的,我们可以在Python中使用函数来找到所有唯一的k元素子集。让我们调用包含所有这些子集的集合。请注意,每个这样的子集都有不同的元素。 问题是两步走。首先,给定这些k-不同元素子集,我想组合(其中的一些),这样(组合只是一些子集的超集): > 构图中任意两个子集之间的交集为空 构图中所有子集的并集给出的正
问题内容: 我需要一个可以根据键查找值的集合,反之亦然。每个值都有一个键,每个键都有一个值。有没有可以立即使用的数据结构呢? 问题答案: 该BIMAP从谷歌番石榴看起来会适合你。 双向映射(或“双向映射”)是一种保留其值以及其键的唯一性的映射。此约束使bimap可以支持“反向视图”,这是另一个bimap,它包含与此bimap相同的条目,但具有相反的键和值。 或来自Apache Commons Co
假设我有以下集合: 我正在寻找产生许多集合的交叉点的组合,其中每个元素都是独一无二的。(实际上是一组哈希,其中每个元素都引用回它相交的集合): 将问题归结为,必须满足以下条件: 对于每个初始集 ,每个元素都将位于由最大初始集数的交集创建的结果集中 这意味着,初始集合中的每个元素都需要恰好位于一个结果集中 集合实际上是无限的,这意味着遍历所有有效元素是不可行的,但集合操作很好 可以忽略所有不包含任何
问题内容: 我有以下几种情况: 假设我无法更改的返回类型,是否有比此方法返回更好的或更正确的方法来返回集合中的唯一元素? 遍历集合并立即返回 从集合中创建列表并调用 问题答案: 您可以使用来获取唯一元素,也可以验证集合仅包含一个元素(从而避免调用和不必要的列表创建): 您通常将其包装在自己的方法中: 请注意,此实现已经是Google的Guava库的一部分(即使您不将其用于此特定代码,我也 强烈 建
我想了解一下如何从java对象集合中生成唯一的id(字符串/数字等),这些对象可以是各种数据类型,如String、BigDecimal、org。乔达。时间本地日期或组织。乔达。时间LocalDateTime或任何自定义java对象。 生成的id应该基于java对象中的值,以便为具有相同值的两个集合生成相同的id。类似于sql group by子句的内容。我想从group by(col1、col2、
我需要迭代两个元素的所有组合:在集合[1,2,3,4]中,我想迭代[(1,2),(1,3),(1.4),(2,3),,(2,4),(3,4)]。是否有现有的工具可以执行此操作? 这段代码将执行两倍于所需的操作,因为在两个循环中都将访问每个对象。 为此编写自己的方法是微不足道的,我只是不想发明轮子。我期望在Guava或Collections API中找到这个,但是没有找到这样的功能。