我正在寻找一种巧妙/优雅的方法,用一个其他列表中的值替换一个列表中的" "
,即:
empty_list = [" ", " ", " "]
other_list = ["a", "b"]
result_list = ["a", "b", " "]
P.S。我不是在寻找for
循环解决方案
答案 0 :(得分:1)
new_list = [ a if b == ' ' else b for a,b in zip( other_list, empty_list)]
new_list += empty_list[len(other_list):]
答案 1 :(得分:1)
empty_list = [" ", " ", " "]
other_list = iter(["a", "b"])
lst = [x if x != ' ' else next(other_list, x) for x in empty_list]
print(lst)
输出
['a', 'b', ' ']
答案 2 :(得分:0)
如果empty_list仅包含" "
个空格,则只需切片第一个列表
empty_list = [" ", " ", " "]
other_list = ["a", "b"]
print([i for i in other_list if len(i)>0]+empty_list[len(other_list):])
输出:
['a', 'b', ' ']