首页 > 解决方案 > 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,10and 100

解决这个问题的好方法是什么?

标签: pythonlistprinting

解决方案


你不需要使用范围来完成你的任务。
无论如何,即使您愿意,您的代码中也有错误

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])

使用itertools.chain


推荐阅读