如果我想创建一个函数来修改lst,使得pos处的元素替换为item,那么这个函数会是什么。没有内置功能Python def替换
例如:
>>> def replace(lst, pos, item):
... mylist = [1,2,3]
...
>>> replace(mylist, 2, 'a')
>>> mylist
[1, 2, 'a']
我只是好奇
如果我想创建一个函数来修改lst,使得pos处的元素替换为item,那么这个函数会是什么。没有内置功能Python def替换
例如:
>>> def replace(lst, pos, item):
... mylist = [1,2,3]
...
>>> replace(mylist, 2, 'a')
>>> mylist
[1, 2, 'a']
我只是好奇
你好像路过mylist
到方法初始化mylist
之前。然后,在方法中创建一个mylist
,完全忽略作为参数传递的列表。相反,你如下应该这样做:
def replace(lst, pos, item):
lst[pos] = item
>>> mylist = [1,2,3]
>>> replace(mylist, 2, 'a')
>>> mylist
[1, 2, 'a']
operator.setitem
是你在找什么。
import operator
mylist = [1,2,3]
operator.setitem(mylist, 2, 'a')
mylist
=> [1, 2, 'a']
如@tobias_k所指出的,这等同于(更加显式的,更具有可读性,更Python)普通产品指派:mylist[2] = 'a'
是否'LST [POS] = item'算作一个内置在功能? –
@tobias nope那不是内置的 – user3357920
@thefourtheye我认为不是 – vaultah