合并两个列表,替换 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
我想用另一个列表中的元素替换一个列表中的元素,但仅限于第二个列表。
例如:
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