Понимание списка If-Else - PullRequest
       7

Понимание списка If-Else

0 голосов
/ 26 февраля 2019

Итак, теперь у меня есть три списка:

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 и list2 (Python3.7)

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

В вашем случае 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 в будущем.Конечно, вы можете легко сконструировать их при необходимости.

0 голосов
/ 26 февраля 2019

Возможно, вы можете взять самую длинную длину и заполнить ее, если она превышает, например:

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'.

...