为了账号安全,请及时绑定邮箱和手机立即绑定

Python从列表中删除特定项目

Python从列表中删除特定项目

泛舟湖上清波郎朗 2022-10-25 14:57:03
这是我的列表代码: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, 16], [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, 14, 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 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

只需在附加之前添加一个 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]]



查看完整回答
反对 回复 2022-10-25
?
ITMISS

TA贡献1871条经验 获得超8个赞

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)

@Jan,你的回答帮助了我。这就是它的工作原理


查看完整回答
反对 回复 2022-10-25
  • 2 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号