2

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

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

    del List[List.index(aString)]
4

3 回答 3

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']
于 2014-09-24T11:03:44.753 回答
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']
于 2014-09-24T12:27:52.167 回答
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
于 2014-09-24T10:39:45.770 回答