【发布时间】:2015-09-13 19:51:01
【问题描述】:
我有一个元素列表,我想按值删除其中一个。在 Python 中,这将是
l = ["apples", "oranges", "melon"]
l.remove("melon")
print(l) # ["apples", "orange"]
Go 中的等价物是什么?我找到了 slice trick 来按索引删除元素,但它的可读性不是很高,仍然需要我手动查找索引并且仅适用于单个项目类型:
func remove(l []string, item string) {
for i, other := range l {
if other == item {
return append(l[:i], l[i+1:]...)
}
}
}
有 list.List 结构,但它不是通用的,因此需要大量的类型转换才能使用。
从列表中删除元素的惯用方法是什么?
【问题讨论】:
-
让我澄清一下,您需要从切片或容器列表中删除一个项目?
-
我目前有一个切片,但我愿意将其替换为容器列表或其他任何可以完成工作的内容。