如何用另一个字符串替换列表中的字符串?

时间:2013-11-10 20:33:11

标签: python list insert

如何获取字符串并将其插入到已存在的另一个字符串的列表中(因此我没有超出范围错误)?

示例:

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

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

4 个答案:

答案 0 :(得分:4)

您只需要:

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

列表支持通过list[index] = value在Python中直接替换。

答案 1 :(得分:4)

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

答案 2 :(得分:1)

此外,如果您不确定要替换的项目的索引,请使用: 说你要替换的项目是"污垢",你只是去:

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

这将取代"污垢"用"草"如果你不确定" grass"的指数?在列表" l"。

答案 3 :(得分: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']