Измените несколько строк для цикла на Single Line For Loop - PullRequest
0 голосов
/ 02 октября 2018

Это способ добавления в список с помощью цикла for:

lst = [] 
for i in range(5):
    lst.append(i)

Хотя приведенное ниже может выглядеть лучше и лучше:

lst = [i for i in range(5)]

Я пытался написать следующеекод такой же, как и во втором формате, но я получаю ошибку.кто-нибудь может помочь?

filtered_list = []
for childList in source_list:
    filtered_childList = remove_emptyElements(childList)    
    if filtered_childList:   
         filtered_list.append(filtered_childList)

1 Ответ

0 голосов
/ 02 октября 2018

Попробуйте этот код:

# one liner as you asked:
filtered_list = [remove_emptyElements(l) for l in source_list if remove_emptyElements(l)]

# but I think that this will be better:
filtered_list = (remove_emptyElements(l) for l in source_list)
filtered_list = [l for l in filtered_list if l]

Обновление: Чтобы решить вашу проблему из комментариев, вы можете использовать этот фрагмент кода:

sequences_result = []
for sequence in sequences:
    for itemset in sequence:
        itemset_result = []
        for item in itemset.split(","):
            itemset_result.append(item.strip())
        sequences_result.append(itemset_result)
print(sequences_result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...