python - Python,如何从列表中的列表中打印特定项目?
问题描述
我正在尝试打印列表列表中所有列表的第一项和最后一项num_list
。
num_list = [[1,2,3],[10,20,30],[100,200,300]]
for x in range(0,3):
for y in range(0,1) and range(2,3):
print(num_list[x][y])
但这只是打印3,30,300
和跳过1,10
and 100
。
解决这个问题的好方法是什么?
解决方案
你不需要使用范围来完成你的任务。
无论如何,即使您愿意,您的代码中也有错误
range(0,1) and range(2,3)
根据定义and
返回第一个值为 False 的值,否则返回表达式中的最后一个值。
因此,在您的情况下,它只返回range(2,3)
.
的确,
range(0,1) and range(2,3)
返回
range(2, 3)
因为bool(range(0,1))
和bool(range(2,3))
都被评估为真。
这就是为什么它们都是非空序列的原因。Indeedbool(range(2,2))
将被评估为False
空。有关更多详细信息,请参阅文档。
你应该写类似的东西
import itertools
num_list = [[1,2,3],[10,20,30],[100,200,300]]
for x in range(0,3):
for y in itertools.chain(range(0,1), range(2,3)):
print(num_list[x][y])
推荐阅读
- apache-nifi - 在全局变量中组合表达式函数
- android - NFC:蓝牙 LE OOB 配对 + Android 应用启动
- c++ - 为什么 DBDATE 在 OLE DB 中有一个有符号整数类型?
- linux - Kubernetes 无法识别通配符*
- css - Odoo V11 - 如何使用 CSS 类设置看板样式,并将字段值作为类名的一部分
- javascript - 什么提示确认表格重新提交?
- facebook-graph-api - 如何使用 facebook API 以二进制形式上传视频?
- laravel-5 - Laravel 队列无法将类对象转换为字符串
- pixelsense - 如何为 Pixelsense(三星 SUR40)打印字节标签?
- python - 将数据与特定 x 范围整合