使用索引Python删除列表项的更有效方法
什么是更有效的替代方案:
del List[List.index(aString)]
答案 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