使用索引Python删除列表项的更有效方法

时间:2014-09-24 10:37:40

标签: python list indexing del

使用索引Python删除列表项的更有效方法

什么是更有效的替代方案:

    del List[List.index(aString)]

3 个答案:

答案 0 :(得分:4)

我认为你也应该尝试pop()。您可以通过在问题中指定索引编号来删除元素。

aList = [123, 'xyz', 'zara', 'abc'];
print aList
print aList.pop(0)   ###pop(index_number)
print aList

输出将是:

[123, 'xyz', 'zara', 'abc']
123
['xyz', 'zara', 'abc']

答案 1 :(得分:2)

如果你想通过索引删除然后使用pop它不会引发错误:

x_list = ['abx', 'sdf', 'sdk', '4', '45']
x_list.pop('sdf')
print x_list
['abx', 'sdf', '4', '45']

你也可以这样做:

x_list = [x for x in x_list if x!='sdk']
print x_list
['abx', 'sdf', '4', '45']

答案 2 :(得分:1)

您可以使用list.remove,如下所示

x = ['a', 'b', 'c', 'a']
x.remove('a')
print(x)
# ['b', 'c', 'a']

x.remove('d')
# ValueError

请注意,如果没有' d'在你的列表中它将抛出一个ValueError,你可以通过使用try...except...

来解决这个问题
try:
    x.remove('d')
except ValueError:
    pass