从列表中打印特定项目

2024-04-23 07:46:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何打印列表中的特定项目,例如给定:

li = [1,2,3,4]

我只想在一个循环中打印第3个rd和第4个th,我一直在尝试使用某种for循环,如下所示:

for i in range (li(3,4)):
    print (li[i])

但是我遇到了各种各样的错误,比如:

TypeError: list indices must be integers, not tuple.
TypeError: list object is not callable

我一直在尝试将()改为[],并一直在反复修改单词,看看它是否有效,但到目前为止还没有


Tags: 项目in列表for错误notrangeli
3条回答

li(3,4)将尝试调用带有参数34的任何li。由于列表不可调用,此操作将失败。如果要迭代某个索引列表,可以这样指定:

for i in [2, 3]:
    print(li[i])

请注意,索引从零开始,因此如果要获取34,则需要访问列表索引23

您还可以对列表进行切片,并在列表上进行迭代。通过执行li[2:4]可以得到一个包含第三和第四个元素的列表(即带有2 <= i < 4的索引i)。然后可以使用for循环在这些元素上迭代:

for x in li[2:4]:
    print(x)

请注意,在列表上迭代将直接提供元素,而不是索引

你应该做:

for i in [2, 3]:
    print(li[i])

通过range(n),您将获得[0, 1, 2, ..., n-1]

通过range(m, n),您将获得[m, m+1, ..., n-1]

这就是为什么要使用range,得到list个索引

更建议像其他研究员那样使用slicing

使用切片表示法,您可以获得所需项目的子列表:

>>> li = [1,2,3,4]
>>> li[2:]
[3, 4]

然后只需迭代子列表:

>>> for item in li[2:]:
...     print item
... 
3
4

相关问题 更多 >