Python удалить указанные c элементы из списка - PullRequest
0 голосов
/ 27 апреля 2020

это мой список код:

saptamani = []
for months in range(1, 12):
    luna = calendar.monthcalendar(2020, months)
    saptamani.append(luna)
    sapt_l = []

print(saptamani)

Это вывод из этого списка:

[[[0, 0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26], [27, 28, 29, 30, 31, 0, 0]], [[0, 0, 0, 0, 0, 1, 2], [3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15, 1
6], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 0]], [[0, 0, 0, 0, 0, 0, 1], [2, 3, 4, 5, 6, 7, 8], [9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22], [23, 24, 25, 26, 27, 28, 29], [30, 31, 0, 0
, 0, 0, 0]], [[0, 0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26], [27, 28, 29, 30, 0, 0, 0]], [[0, 0, 0, 0, 1, 2, 3], [4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 1
4, 15, 16, 17], [18, 19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 29, 30, 31]], [[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 30, 0, 0, 0, 0, 0]]
, [[0, 0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26], [27, 28, 29, 30, 31, 0, 0]], [[0, 0, 0, 0, 0, 1, 2], [3, 4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14, 15,
16], [17, 18, 19, 20, 21, 22, 23], [24, 25, 26, 27, 28, 29, 30], [31, 0, 0, 0, 0, 0, 0]], [[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27], [28, 29, 30,
 0, 0, 0, 0]], [[0, 0, 0, 1, 2, 3, 4], [5, 6, 7, 8, 9, 10, 11], [12, 13, 14, 15, 16, 17, 18], [19, 20, 21, 22, 23, 24, 25], [26, 27, 28, 29, 30, 31, 0]], [[0, 0, 0, 0, 0, 0, 1], [2, 3, 4, 5, 6, 7, 8], [9, 10, 11,
12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22], [23, 24, 25, 26, 27, 28, 29], [30, 0, 0, 0, 0, 0, 0]]]

Как мне сделать, чтобы сохранить в списке только элементы больше 0, для пример в этом случае:

[0, 0, 1, 2, 3, 4, 5]

Будет:

[1, 2, 3, 4, 5]

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020
saptamani = []
for months in range(1, 12):
    luna = calendar.monthcalendar(2020, months)
    for i in luna:
        prepare = [m for m in i if m > 0]
        saptamani.append(new_w)

print(saptamani)

@ Ян, твой ответ помог мне. Вот как это работает

0 голосов
/ 27 апреля 2020

Просто добавьте оператор if перед добавлением:

saptamani = []
for months in range(1, 12):
    luna = [m for m in calendar.monthcalendar(2020, months) if m > 0]
    saptamani.append(luna)

print(saptamani)

Или - как понимание списка:

saptamani = [luna 
             for months in range(1, 12) 
             for luna in [m for m in calendar.monthcalendar(2020, months) if m > 0]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...