首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中,pop ()选择什么,它允许索引吗?

在python中,pop ()选择什么,它允许索引吗?
EN

Stack Overflow用户
提问于 2019-04-13 04:04:07
回答 3查看 646关注 0票数 0

python中的pop ()是从集合的第一个还是最后一个获取的,是获取索引吗?

我正在学习python,我最近在学习集合的时候遇到了pop函数。我试过在集合上使用pop (),一开始它从列表中删除了最后一个内容,这是我所期望的,因为在极客中,这是极客的说法,但后来它一直从集合中提取第一个内容,他们还说你可以在函数中包括索引,但这给了我一个错误。

代码语言:javascript
复制
Nums={73,30,18,36,38}
Nums.pop ()
73
Nums.pop (2)
TypeError: pop () takes no arguments (1 given)

我期望第一个函数输出38,这是最后一个数字,但它输出的是73,这是第一个数字。当我使用索引2时,我希望它输出18,但它给了我一个错误。

EN

回答 3

Stack Overflow用户

发布于 2019-04-13 04:17:35

Nums={73,30,18,36,38}是一个集合。集合的一个属性是它们没有固定的顺序。这意味着,pop()看起来是随机的,而实际上它选择了改变“最后一项”。

如果你使用list,Nums=[73,30,18,36,38]nums.pop()会如期返回最后一项。是的,你可以将它与索引一起使用。

票数 1
EN

Stack Overflow用户

发布于 2019-04-13 04:20:21

在Python中,集合是无序的,因此没有与集合中的项目相关联的索引,并且项目弹出的顺序是未定义的。

如果需要特定索引处的项目,请使用itertools.islice

代码语言:javascript
复制
>>> 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]
>>>
票数 1
EN

Stack Overflow用户

发布于 2019-04-13 04:17:20

如果没有任何参数,Python list.pop()函数将返回列表的最后一项(未设置),同时将其删除。

您可以使用list.pop(index)指定索引。这将返回位于此索引处的项,并将其删除。

下面是一个例子:

代码语言:javascript
复制
list = ['a', 'b', 'c', 'd']
print(list.pop(1))
# 'b'
print(list)
# ['a', 'c', 'd']
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55658726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档