合并两个列表,替换 Python 中具有相同索引的元素

Merge two lists, replacing elements with same index in Python

我想用另一个列表中的元素替换一个列表中的元素,但仅限于第二个列表。

例如:

defaults = ['apple','banana','cherry','date']
data = ['accordion','banjo']

#   result: ['accordion','banjo','cherry','date']

我可以用一个for循环来完成,我可以用下面的代码在一行中完成:

result = [data[i] if i<len(data) else defaults[i] for i,v in enumerate(defaults)]

是否有更简单或更直接的方法来执行此操作?

你想要:

result = data + defaults[len(data):]

如果data可以比defaults长,而你希望defaults的长度是最大长度:

result = data[:len(defaults)] + defaults[len(data):]

这种 : 的用法称为 'slicing',更多关于切片列表的信息请参见 python.org on Lists