当前位置: 首页 > 面试题库 >

了解set()函数

宗政斌
2023-03-14
问题内容

在python中,set()是没有重复元素的无序集合。但是,我无法理解它如何生成输出。

例如,考虑以下内容:

>>> x = [1, 1, 2, 2, 2, 2, 2, 3, 3]
>>> set(x)
set([1, 2, 3])

>>> y = [1, 1, 6, 6, 6, 6, 6, 8, 8]
>>> set(y)
set([8, 1, 6])

>>> z = [1, 1, 6, 6, 6, 6, 6, 7, 7]
>>> set(z)
set([1, 6, 7])

应该不是的输出set(y)是:set([1, 6, 8])?我在Python 2.6中尝试了以上两个。


问题答案:

正如您所说,集合是无序的。即使实现集合的一种方法是使用树,也可以使用哈希表来实现(这意味着按排序顺序获取键可能并不那么琐碎)。

如果您想对它们进行排序,则可以执行以下操作:

sorted(set(y))

这将产生一个包含集合元素的排序列表。(不是集合。同样,集合是无序的。)

否则,唯一可以保证的set就是它使元素唯一(没有什么可以不止一次了)。

希望这可以帮助!



 类似资料:
  • Python 内置函数 描述 set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。 语法 set 语法: class set([iterable]) 参数说明: iterable -- 可迭代对象对象; 返回值 返回新的集合对象。 实例 以下实例展示了 set 的使用方法:>>>x = set('runoob') >>> y = set('go

  • 问题内容: 嗨,我有以下程序来检查UDP套接字的发送缓冲区大小。但是,我的返回值让我有些困惑。我使用以下简单的应用程序: 我的机器上的输出是: 发送缓冲区大小= 129024 将发送缓冲区设置为98304 新的发送缓冲区大小= 196608 任何人都可以在这里弄清楚我在做什么错或如何解释输出吗? 问题答案: 你没做错什么 在设置时,Linux将值加倍(在内核内),并在查询时返回加倍的值。 说:

  • 问题内容: 将函数应用于每个iterable并返回结果列表。如果传递了其他可迭代的参数,则函数必须采用那么多参数,并且并行地将其应用于所有可迭代的项目。 如果一个可迭代项短于另一个可迭代项,则假定它扩展为None。 如果为,则假定为身份函数;如果有多个参数,则返回一个由元组组成的列表,其中包含所有可迭代对象中的对应项(一种转置操作)。 可迭代参数可以是序列或任何可迭代对象。结果总是一个列表。 这在

  • 问题内容: 因此,我在做家庭作业时遇到了两个问题,我被困在第二个问题上。 使用Python Set Comprehension(Python等效于Set Builder表示法)来生成所有小于100的质数的集合。回想一下,质数是一个大于1的整数,并且不能被除以外的任何整数整除本身和1.将素数集存储在变量中(其他部分将需要它)。输出您的一组素数(例如,带有打印功能)。 使用Python Set Com

  • 问题内容: 对象的可评估字符串表示形式(可以它,这意味着它是评估为Python对象的字符串表示形式) 换一种说法: 问题: 为什么我得到双引号?(这样做的时候我不懂) 为什么我得到时却得到而不是是对象? 问题答案: 因此,名称x将附加到字符串。例如,当你致电时,解释器放而不是,x然后致电。 实际调用一个魔术方法的,这给串包含该值的表示分配给。因此,它会在字符串”“中返回结果”。的想法是给出一个包含

  • 问题内容: 我有一个带有Passport模块的Node.js Express REST API,用于身份验证。登录方法(GET)在标题中返回cookie。当我从Chrome调用它时,它工作正常,我的Cookie已在浏览器中设置。 但是,如果我通过Angularjs中的$ http调用它,则不会设置cookie。 如您在上面所看到的,Set-Cookie位于http服务响应的标题中。 也许HttpO