如果-其他列表理解

时间:2019-02-26 01:47:02

标签: python python-3.x list-comprehension

所以现在我有三个列表:

list1 = [False if num1[i] == '0' else True for i in range(len(num1))]
list2 = [False if num2[i] == '0' else True for i in range(len(num2))]
tmp = [False for i in range(abs(len(list1)-len(list2)))]

我想在以下情况下合并列表:

if len(list1) > len(list2):
    list2 = tmp + list2
else:
    list1 = tmp + list1

有什么办法可以使用列表理解来完成所有这些过程吗?特别是将if-else列表与tmplist1(Python3.7)组合在一起时,list2部分

2 个答案:

答案 0 :(得分:0)

也许您可以采用最长的长度,如果超过则填满它,例如:

list_length = max(len(num1), len(num2))
list1 = [i < len(num1) and num1[i] != '0' for i in range(list_length)]
list2 = [i < len(num2) and num2[i] != '0' for i in range(list_length)]

请注意,我还将False if num2[i] == '0' else True简化为num2[i] != '0'

答案 1 :(得分:0)

在您的情况下,list1list2的长度应与num1num2相同。另外,您可以稍微简化一下语句:

result = [False] * abs(len(num1) - len(num2)) + [num != '0' for num in min(num2, num1, key=len)]

result将是您要添加temp的任何列表。假设您将来不再需要list1list2。当然,您可以根据需要轻松构建它们。