Python用另一个列表中的值替换列表中的空字符串

时间:2018-07-11 13:36:38

标签: python

我正在寻找一种巧妙/优雅的方法,用一个其他列表中的值替换一个列表中的" ",即:

empty_list = [" ", " ", " "]
other_list = ["a", "b"]
result_list = ["a", "b", " "]

P.S。我不是在寻找for循环解决方案

3 个答案:

答案 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', ' ']