If-Else List Perrehension

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了If-Else List Perrehension相关的知识,希望对你有一定的参考价值。

所以现在我有三个列表:

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部分

答案

在你的情况下,list1list2应该与num1num2具有相同的长度。此外,您可以稍微简化一下您的陈述:

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

result将是你想添加temp的任何列表。这假设您将来不需要list1list2。当然,如果需要,您可以轻松构建它们。

另一答案

也许你可以采用最长的长度并填充它,如果超过例如:

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'

以上是关于If-Else List Perrehension的主要内容,如果未能解决你的问题,请参考以下文章

彻底消灭if-else嵌套

彻底消灭if-else嵌套

彻底消灭if-else嵌套

优雅的替换if-else语句

优雅的替换if-else语句

条件判断语句(if-else)