list.pop()一次删除两项,但我只想删除当前一项

时间:2018-12-20 03:51:17

标签: python python-3.x

我想一次从列表中删除一项,但是要使用remove(),pop()删除两项。

Fruits = ['apple','hello','banana','lichi','mango']
for item in Fruits:
    print(item)
    Fruits.remove(item)

我得到的答案是: 苹果 香蕉 芒果

如何仅从列表中删除一项。

3 个答案:

答案 0 :(得分:0)

问题是您要遍历要从中同时删除项目的列表。

for i in range(len(Fruit)):
  item = Fruit.pop()
  print(item)

答案 1 :(得分:0)

item = Fruits.pop()

从列表中删除一项

Fruits.remove('mango')

从列表中删除“芒果”

答案 2 :(得分:0)

尝试一下?

Fruits = ['apple','hello','banana','lichi','mango']
while Fruits:
    print(Fruits.pop())

在代码示例中,您可以想象在第一个循环中从列表中删除'apple'时。水果已更改为['hello','banana','lichi','mango']。因此,在第二个循环中,'banana'被提取并作为第二项被删除,而'hello'被绕过。因此,请避免在for循环中更改列表的大小。

根据要求更新:

Fruits = ['apple','hello','banana','lichi','mango']
i = 0
while i < len(Fruits):
    item = Fruits[i]
    print(item)
    if item == 'apple':
        Fruits.remove(item)
    else:
        i += 1

Python中的for循环不喜欢C / C ++。它实际上是通过迭代器传递的。很难精确控制。因此,此处使用while子句。但是应避免使用while子句,因为它很容易造成死循环。