python - Python从列表中删除特定项目
问题描述
这是我的列表代码:
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]
解决方案
只需在附加之前添加一个 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]]
推荐阅读
- arrays - ImportXML Xpath 谷歌表格
- javascript - 无法使用构造函数的属性
- python - 使用 PyAudio 在 Raspberry Pi 上测量声级
- javascript - Monaco:在 monaco-editor 中为自定义语言创建语言语法定义的最佳方法是什么?
- vue.js - 这个 'v-if' 应该被移动到包装器元素(vue/no-use-v-if-with-v-for)
- angular - 角度错误 TS2739:“AbstractControl”类型缺少“FormControl”类型的以下属性
- go - “go mod init”在哪里运行?
- python - django 序列化程序丢弃字段
- ruby-on-rails - 设置 ruby 应用程序时如何解决路由错误?
- symfony - Heroku 500 带有 symfony 形式的内部错误