Questions tagged «set»

集合是不重复任何元素的集合,集合可以根据排序标准(“有序集合”)枚举其元素或不保留任何顺序(“无序集合”)。

7
Python设置为列表
如何在Python中将集合转换为列表?使用 a = set(["Blah", "Hello"]) a = list(a) 不起作用。它给了我: TypeError: 'set' object is not callable
159 python  list  set 


5
set()如何实现?
我见过有人说setpython 中的对象具有O(1)成员资格检查。如何在内部实现它们以允许这样做?它使用哪种数据结构?该实现还有什么其他含义? 这里的每个答案都非常有启发性,但是我只能接受一个答案,因此,我将选择与原始问题最接近的答案。谢谢你的信息!

20
JavaScript中是否有某种哈希码函数?
基本上,我试图创建一个具有唯一对象的对象,即一个集合。我有一个绝妙的主意,就是仅将JavaScript对象与属性名称的对象一起使用。如, set[obj] = true; 在一定程度上这是可行的。它适用于字符串和数字,但是对于其他对象,它们似乎都“哈希”为相同的值并访问相同的属性。有什么方法可以为对象生成唯一的哈希值?字符串和数字是如何做到的,我可以覆盖相同的行为吗?
150 javascript  hash  set  hashcode 

8
如何对集合进行JSON序列化?
我有一个Python set,其中包含带有__hash__和__eq__方法的对象,以确保该集合中没有重复项。 我需要对该结果进行json编码set,但是即使将一个空值传递set给该json.dumps方法也会引发TypeError。 File "/usr/lib/python2.7/json/encoder.py", line 201, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode return _iterencode(o, 0) File "/usr/lib/python2.7/json/encoder.py", line 178, in default raise TypeError(repr(o) + " is not JSON serializable") TypeError: set([]) is not JSON serializable 我知道我可以为json.JSONEncoder具有自定义default方法的类创建扩展,但是我什至不知道从哪里开始转换set。是否应该set使用默认方法中的值创建字典,然后返回该方法的编码?理想情况下,我想使默认方法能够处理原始编码器阻塞的所有数据类型(我将Mongo用作数据源,因此日期似乎也引发了此错误) 正确方向的任何提示将不胜感激。 编辑: 感谢你的回答!也许我应该更精确一些。 我利用(并赞成)这里的答案来解决set翻译的局限性,但是内部键也是一个问题。 中的set对象是转换为的复杂对象__dict__,但它们本身也可以包含其属性值,这些值可能不符合json编码器中的基本类型。 涉及到很多不同的类型set,并且哈希基本上为实体计算了唯一的ID,但是按照NoSQL的真正精神,没有确切说明子对象包含什么。 一个对象可能包含的日期值starts,而另一个对象可能具有一些其他模式,该模式不包含包含“非原始”对象的键。 …

8
迭代时从std :: set中删除元素
我需要遍历一组并删除符合预定义条件的元素。 这是我编写的测试代码: #include <set> #include <algorithm> void printElement(int value) { std::cout << value << " "; } int main() { int initNum[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; std::set<int> numbers(initNum, initNum + 10); // print '0 1 2 3 4 5 6 7 …

4
要设置的JavaScript数组
MSDN引用了JavaScript的Set集合抽象。我有一个要转换为集合的对象数组,以便能够.delete()按名称删除()各种元素: var array = [ {name: "malcom", dogType: "four-legged"}, {name: "peabody", dogType: "three-legged"}, {name: "pablo", dogType: "two-legged"} ]; 如何将此数组转换为集合?更具体地说,是否可以在不迭代上述数组的情况下执行此操作?相对缺少文档(对于实例化集足够;对于转换,则足够)(如果可能的话)。 我可能还在考虑转换为Map,以通过密钥将其删除。我试图实现的是一个可迭代的集合,可以通过主要通过键(而不是索引)来访问元素来访问或修改该集合。 从数组到另一个的转换是最终目标。
144 javascript  arrays  set 

9
如何在python中将集合转换为列表?
我正在尝试将一组转换为Python 2.6中的列表。我正在使用以下语法: first_list = [1,2,3,4] my_set=set(first_list) my_list = list(my_set) 但是,我得到以下堆栈跟踪: Traceback (most recent call last): File "<console>", line 1, in <module> TypeError: 'set' object is not callable 我怎样才能解决这个问题?
143 python  list  set  python-2.6 

3
迭代器和Listiterator之间的区别?
Iterator ite = Set.iterator(); Iterator ite = List.iterator(); ListIterator listite = List.listIterator(); 我们可以使用Iterator遍历a Set或a List或a Map。但是ListIterator只能用于遍历a List,不能遍历a Set。为什么? 我知道主要的区别在于,使用迭代器,我们只能在一个方向上运行,而ListIterator我们可以在两个方向上运行。还有其他区别吗?和任何优势ListIterator了Iterator?

4
Java中不同类型的线程安全集
在Java中似乎有很多不同的实现和方法来生成线程安全的Set。一些例子包括 1)CopyOnWriteArraySet 2)Collections.synchronizedSet(设置集) 3)ConcurrentSkipListSet 4)Collections.newSetFromMap(new ConcurrentHashMap()) 5)以类似于(4)的方式生成的其他集合 这些示例来自Java 6中的并发模式:并发集实现。 有人可以简单解释一下这些示例与其他示例的区别,优点和缺点吗?我在理解和保持Java Std Docs的所有内容方面遇到麻烦。
135 java  concurrency  set 

3
如何在JavaScript中映射/减少/过滤Set?
有没有什么办法map/ reduce/ filter的/ etc Set中的JavaScript或者我会写我自己? 这是一些明智的Set.prototype扩展 Set.prototype.map = function map(f) { var newSet = new Set(); for (var v of this.values()) newSet.add(f(v)); return newSet; }; Set.prototype.reduce = function(f,initial) { var result = initial; for (var v of this) result = f(result, v); return result; }; Set.prototype.filter = function filter(f) { …

4
golang为什么我们没有固定的数据结构[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我正在尝试解决“去编程语言”练习#1.4,这需要我有一套。我可以创建一个set类型,但是为什么语言没有附带呢?来自谷歌(番石榴也是起源于谷歌)的,语言设计者为什么不选择增加对基本数据结构的支持?为什么要强迫您的用户为一套基本的东西创建自己的实现?
129 data-structures  go  set 

5
如何在Python中创建一组集?
我正在尝试在Python中设置一组。我不知道该怎么做。 从空集开始xx: xx = set([]) # Now we have some other set, for example elements = set([2,3,4]) xx.add(elements) 但我明白了 TypeError: unhashable type: 'list' 要么 TypeError: unhashable type: 'set' Python中可能有一组集合吗? 我正在处理大量集合,但我希望不必处理重复的集合(集合A1,集合A2,....的集合B,如果Ai = Aj,则“将取消”两个集合)

11
将列表转换为集合会更改元素顺序
最近,我注意到当我将a转换list为set元素的顺序发生变化,由字符排序。 考虑以下示例: x=[1,2,20,6,210] print x # [1, 2, 20, 6, 210] # the order is same as initial order set(x) # set([1, 2, 20, 210, 6]) # in the set(x) output order is sorted 我的问题是- 为什么会这样呢? 如何进行设置操作(尤其是“设置差异”)而不丢失初始顺序?
119 python  set 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.