📜  如何从Python的列表中删除元素

📅  最后修改于: 2020-10-29 01:00:37             🧑  作者: Mango

如何从Python的列表中删除元素

Python提供了以下方法来删除一个或多个元素。我们可以通过指定索引位置来使用del关键字删除元素。让我们了解以下方法。

  • 去掉()
  • pop()
  • 明确()
  • 德尔
  • 列表理解-如果满足指定条件。

remove()方法

remove()方法用于从列表中删除指定的值。它接受item值作为参数。让我们了解以下示例。

范例-

list1 = ['Joseph', 'Bob', 'Charlie', 'Bob', 'Dave']
print("The list is: ", list1)


list1.remove('Joseph')
print("After removing element: ",list1)

输出:

The list is:  ['Joseph', 'Bob', 'Charlie', 'Bob', 'Dave']
After removing element:  ['Bob', 'Charlie', 'Bob', 'Dave']

如果列表包含多个同名项目,它将删除该项目的首次出现。

范例-

list1 = ['Joseph', 'Bob', 'Charlie', 'Bob', 'Dave']
print("The list is: ", list1)


list1.remove('Bob')
print("After removing element: ",list1)

输出:

The list is:  ['Joseph', 'Bob', 'Charlie', 'Bob', 'Dave']
After removing element:  ['Joseph', 'Charlie', 'Bob', 'Dave']

pop()方法

pop()方法删除指定索引位置的项目。如果我们没有指定索引位置,那么它将从列表中删除最后一项。让我们了解以下示例。

范例-

list1 = ['Joseph', 'Bob', 'Charlie', 'Bob', 'Dave']
print("The list is: ", list1)


list1.pop(3)
print("After removing element: ",list1)

# index position is omitted
list1.pop()
print("After removing element: ",list1)

输出:

The list is:  ['Joseph', 'Bob', 'Charlie', 'Bob', 'Dave']
After removing element:  ['Joseph', 'Bob', 'Charlie', 'Dave']
After removing element:  ['Joseph', 'Bob', 'Charlie']

我们还可以指定负索引位置。索引-1表示列表的最后一项。

范例-

list1 = ['Joseph', 'Bob', 'Charlie', 'Bob', 'Dave']
print("The list is: ", list1)

# Negative Indexing
list1.pop(-2)
print("After removing element: ",list1)

输出:

The list is:  ['Joseph', 'Bob', 'Charlie', 'Bob', 'Dave']
After removing element:  ['Joseph', 'Bob', 'Charlie', 'Dave']

clear()方法

clear()方法从列表中删除所有项目。它返回空列表。让我们了解以下示例。

范例-

list1 = [10, 20, 30, 40, 50, 60]
print(list1)

# It will return the empty list
list1.clear()
print(list1)

输出:

[10, 20, 30, 40, 50, 60]
[]

del语句

我们可以使用del关键字删除列表项。删除指定的索引项目。让我们了解以下示例。

范例-

list1 = [10, 20, 30, 40, 50, 60]
print(list1)


del list1[5]
print(list1)


del list1[-1]
print(list1)

输出:

[10, 20, 30, 40, 50, 60]
[10, 20, 30, 40, 50]
[10, 20, 30, 40]

它可以删除整个列表。

del list1
print(list1)

输出:

Traceback (most recent call last):
  File "C:/Users/DEVANSH SHARMA/PycharmProjects/Practice Python/first.py", line 14, in 
    print(list1)
NameError: name 'list1' is not defined

我们还可以使用带有slice运算符的del从列表中删除多个项目。让我们了解以下示例。

范例-

list1 = [10, 20, 30, 40, 50, 60]
print(list1)


del list1[1:3]
print(list1)


del list1[-4:-1]
print(list1)

del list1[:]
print(list1)

输出:

[10, 20, 30, 40, 50, 60]
[10, 40, 50, 60]
[60]
[] 

使用列表理解

列表理解与从列表中删除项目的方式略有不同。它删除那些满足给定条件的项目。例如-要从给定列表中删除偶数,我们将条件定义为i%2,该条件将给出提醒2,并且将删除那些提醒为2的项目。

让我们了解以下示例。

范例-

list1 = [11, 20, 34, 40, 45, 60]
# Remove the odd numbers
print([i for i in list1 if i % 2 == 0])
#Remove the even numbers
print([i for i in list1 if i % 2 != 0])

输出:

[20, 34, 40, 60]
[11, 45]