python中的pop ()是从集合的第一个还是最后一个获取的,是获取索引吗?
我正在学习python,我最近在学习集合的时候遇到了pop函数。我试过在集合上使用pop (),一开始它从列表中删除了最后一个内容,这是我所期望的,因为在极客中,这是极客的说法,但后来它一直从集合中提取第一个内容,他们还说你可以在函数中包括索引,但这给了我一个错误。
Nums={73,30,18,36,38}
Nums.pop ()
73
Nums.pop (2)
TypeError: pop () takes no arguments (1 given)我期望第一个函数输出38,这是最后一个数字,但它输出的是73,这是第一个数字。当我使用索引2时,我希望它输出18,但它给了我一个错误。
发布于 2019-04-13 04:17:35
Nums={73,30,18,36,38}是一个集合。集合的一个属性是它们没有固定的顺序。这意味着,pop()看起来是随机的,而实际上它选择了改变“最后一项”。
如果你使用list,Nums=[73,30,18,36,38],nums.pop()会如期返回最后一项。是的,你可以将它与索引一起使用。
发布于 2019-04-13 04:20:21
在Python中,集合是无序的,因此没有与集合中的项目相关联的索引,并且项目弹出的顺序是未定义的。
如果需要特定索引处的项目,请使用itertools.islice:
>>> from itertools import islice
>>> nums = dict.fromkeys((73,30,18,36,38))
>>> list(nums)
[73, 30, 18, 36, 38]
>>> nums.popitem()
(38, None)
>>> list(nums)
[73, 30, 18, 36]
>>> nums.pop(next(islice(nums, 2, None)))
>>> list(nums)
[73, 30, 36]
>>>发布于 2019-04-13 04:17:20
如果没有任何参数,Python list.pop()函数将返回列表的最后一项(未设置),同时将其删除。
您可以使用list.pop(index)指定索引。这将返回位于此索引处的项,并将其删除。
下面是一个例子:
list = ['a', 'b', 'c', 'd']
print(list.pop(1))
# 'b'
print(list)
# ['a', 'c', 'd']https://stackoverflow.com/questions/55658726
复制相似问题