所以现在我有三个列表:
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
列表与tmp
和list1
(Python3.7)组合在一起时,list2
部分
答案 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)
在您的情况下,list1
和list2
的长度应与num1
和num2
相同。另外,您可以稍微简化一下语句:
result = [False] * abs(len(num1) - len(num2)) + [num != '0' for num in min(num2, num1, key=len)]
result
将是您要添加temp
的任何列表。假设您将来不再需要list1
和list2
。当然,您可以根据需要轻松构建它们。