Python list.pop()函数无法正常工作

时间:2015-06-11 12:35:11

标签: python list

以下是我的代码:

data = raw_input("Please enter your particulars in the format of name/age/address ->")

pro = data.split("/")

name = pro.pop(0)
age = pro.pop(1)
address = pro.pop()

print name
print age
print address

我理解列表的索引是0,1,2,但是当我弹出年龄(列表中应该是索引1)时,它会在打印时给我一个地址。同样地址,它给了我年龄。有人能告诉我这个世界上有什么问题吗?

3 个答案:

答案 0 :(得分:6)

这是因为当你已经弹出索引0时,其他项目向左移动1,因此索引1移动为0。

所以你必须这样做 -

name = pro[0]
age = pro[1]
address = pro[2]

答案 1 :(得分:3)

最初,列表是这样的:

name  age  address
# 0    1      2

age位于索引1。但是,在您弹出name后,它就会

age address
# 0    1

age现在位于索引0

答案 2 :(得分:0)

如前所述,pop()完全没必要。但是,了解使用它时发生的情况非常重要。

调用pop() 会从列表中删除并返回给定索引的项目。因此,一旦弹出第一个项目(在索引0处),新的第一个项目就是您之后的下一个项目(索引为1的项目)。

如果您绝对想使用pop(),则以下工作(但不推荐):

>>> name = pro.pop(0)
>>> age = pro.pop(0)
>>> address = pro.pop(0)

如果您要打印pro,则会看到以下内容:

>>> print pro
[]

是的,一个空列表(已将所有元素“弹出”)。