python,如何从列表中的列表中打印特定的项目?

Python, how to print specific items from lists in lists?

我正在打印列表中所有列表的第一个和最后一个项目num_list

1
2
3
4
5
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,10100

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


你不需要使用范围来完成你的任务。不管怎样,即使您愿意,您的代码行中也有一个错误

1
range(0,1) and range(2,3)

根据定义,and返回第一个值,该值为假;否则,如果没有,则返回表达式中的最后一个值。因此,在您的情况下,它只返回range(2,3)

的确,

1
range(0,1) and range(2,3)

收益率

1
range(2, 3)

因为bool(range(0,1))bool(range(2,3))都被认为是真的。这就是为什么它们都是非空序列。实际上,bool(range(2,2))将被评估为False为空。有关更多详细信息,请参阅文档。

你应该写些像

1
2
3
4
5
6
7
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。


使用索引。

前任:

1
2
3
4
num_list = [[1,2,3],[10,20,30],[100,200,300]]

for i in num_list:
    print(i[0], i[-1])   #i[-1] == negative indexing.

输出:

1
2
3
1 3
10 30
100 300


1
2
3
4
num_list = [[1, 2, 3], [10, 20, 30], [100, 200, 300]]

for each in num_list:
    print (each[0], each[-1])


range(0,1)和range(2,3)返回=>range(2,3)