一尘不染

返回变异列表的表达式

py

我正在寻找一个表达式,改变一个元素并返回修改后的列表

下面有点啰嗦

# key=0; value=3; rng=[1,2]
[(v if i != key else value) for i, v in enumerate(rng)]

编辑

我正在寻找一种在单个表达式中内联以下函数的方法

def replace(rng: List, key: int, value):
    a = list(rng) 
    a[key] = value
    return a

阅读 160

收藏
2023-01-27

共1个答案

一尘不染

尝试列表串联:

key = 0
value = 3
rng = [1, 2]

out = rng[:key] + [value] + rng[key+1:]
print(out)

rng[:key]是列表的副本,直到键(独占),[value]是一个新列表,其中唯一的元素是value,并且rng[key+1]是键(独占)上的列表的副本。将这些连接在一起,您将获得一个副本,其中替换了密钥

2023-01-27