0

如何获取一个字符串并将其插入到列表中以代替已经存在的另一个字符串(这样我就不会出现超出范围错误)?

例子:

l = ["rock", "sand", "dirt"]
l.remove[1]
l.insert(1, "grass")

还有比这更简单的方法吗?如果我有一个空列表并且顺序很重要,我该怎么办?

4

4 回答 4

4

所有你需要的是:

>>> l = ["rock", "sand", "dirt"]
>>> l[1] = "grass"
>>> l
['rock', 'grass', 'dirt']
>>>

列表支持在 Python 中通过list[index] = value.

于 2013-11-10T20:34:03.177 回答
4

您也可以直接替换元素:l[1] = 'grass'

于 2013-11-10T20:34:08.363 回答
1

此外,如果您不确定要替换的项目的索引,您只需使用:假设您要替换的项目是“污垢”,您只需:

rightIndex = l.index("dirt")
l[rightIndex] = "grass

如果您不确定列表“l”中“草”的索引,这将用“草”替换“污垢”。

于 2013-11-10T21:22:22.080 回答
0

如果您正在查看任意列表,您可能不知道该项目是否在列表中或它是什么索引。您可能首先检查该项目是否在列表中,然后查找索引,以便您可以替换它。以下示例将对列表中与您要替换的内容匹配的所有元素执行此操作:

def replace_list_item(old, new, l):
   '''
   Given a list with an old and new element, replace all elements
   that match the old element with the new element, and return the list.
   e.g. replace_list_item('foo', 'bar', ['foo', 'baz', 'foo'])
   => ['bar', 'baz', 'bar']
   '''
   while old in l: # check for old item, otherwise index gives a value error
       index = l.index(old)
       l[index] = new
   return l

然后:

l = ["rock", "sand", "dirt", "sand"]
replace_list_item('sand', 'grass', l)

返回:

['rock', 'grass', 'dirt', 'grass']
于 2013-11-10T20:48:19.563 回答