当前位置: 首页 > 知识库问答 >
问题:

如何引用列表中不同范围的值?

廖君昊
2023-03-14

我想做的是从一个列表中引用几个不同的范围,即。我想要4-6元素,12-18元素,等等。这是我最初的尝试:

test = theList[4:7, 12:18]

我希望它能做同样的事情:

test = theList[4,5,6,12,13,14,15,16,17]

但是我有一个语法错误。最好/最简单的方法是什么?

共有3个答案

魏学智
2023-03-14

您可以添加@Bhargav_Rao所述的两个列表。更一般地说,您还可以使用列表生成器语法:

test = [theList[i] for i in range(len(theList)) if 4 <= i <= 7 or 12 <= i <= 18]
孙德本
2023-03-14

您还可以使用itertools模块:

>>> from itertools import islice,chain
>>> theList=range(20)
>>> list(chain.from_iterable(islice(theList,*t) for t in [(4,7),(12,18)]))
[4, 5, 6, 12, 13, 14, 15, 16, 17] 

请注意,因为islice在每次迭代中返回生成器,所以在内存使用方面,它比列表切片执行得更好。

此外,您可以使用一个函数为更多的索引和一般的方式。

>>> def slicer(iterable,*args):
...    return chain.from_iterable(islice(iterable,*i) for i in args)
... 
>>> list(slicer(range(40),(2,8),(10,16),(30,38)))
[2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 30, 31, 32, 33, 34, 35, 36, 37]

注意:如果要循环结果,不需要将结果转换为列表

阎阎宝
2023-03-14

您可以添加这两个列表。

>>> theList = list(range(20))
>>> theList[4:7] + theList[12:18]
[4, 5, 6, 12, 13, 14, 15, 16, 17]
 类似资料:
  • 问题内容: 我在读取CSV文件时遇到此错误(无标题,3列,第二和第三字符串): 这是下面代码的一部分。坚持起来简直是愚蠢的简单事情,但是对于如何工作我只是空白。我是编码的新手,但是之前已经处理过csv模块,并且从来没有遇到过这方面的问题,只是在记事本中制作了一些测试csv文件,以查看是否可以从相同的代码中读取它,并且可以。我不知道。 问题答案: 尝试检查空白行。另外,请避免将其用作变量名。是打开的

  • 有一个列表框(例如列表框A)包含值,如果我单击一个按钮(例如按钮X),它会将选定的值添加到另一个列表框(例如列表框B)。在此操作之后,列表框B将显示选择值。 在列表框B中(假设它有来自列表框A的值),如果我单击另一个按钮(例如按钮Y),则从列表框B中选择的值返回到列表框A 我按照这篇文章的答案并尝试将代码应用于列表框。 当我运行它时,我可以从列表框A中添加值(仅限单个值)。但我不能将值从列表框B移

  • 问题内容: 每当我运行xhtml时。它给了我以下例外。statusindex对象的值为5。我正在使用JQuery进行延迟滚动,因此当我的xhml页面getMoreStatusList调用getMoreStatusList函数时,它为我提供了超出范围的异常的索引。数据库中有26个状态更新,因此索引超出范围的异常对我来说毫无意义。 1)代码 2)例外 问题答案: 消息说是30。这不是您认为的5,而是2

  • 问题内容: 我在以下Python代码部分遇到问题: 具体的错误如下: 我已经进行了一些研究,似乎在运行脚本时,可能在命令行中需要一个参数,但是我不确定要添加什么或可能是什么问题!我也搜索了该站点,但是我发现的所有解决方案都没有评论,并且/或者没有像我一样包含开放功能。 任何帮助是极大的赞赏。 问题答案: 表示执行脚本所使用的命令行选项。 是您正在运行的脚本的名称。所有其他选项都包含在中。 您正在尝

  • 问题内容: 给出以下列表 我想创建一个新列表,该列表由将当前值和下一个值相加的元素组成。它将包含 1 小于元件。 像这样: (从0 + 1、1 + 2和2 + 3) 这是我尝试过的: 问题是我不断收到此错误: 我很确定会发生这种情况,因为当我得到(3)的最后一个元素时,我无法将其添加到任何东西中,因为这样做超出了它的值(添加3之后就没有值了) )。因此,我需要告诉代码在2处停止,同时仍引用3进行计

  • 我想用php发送数据,用python获取数据。但shell_exec无法发送参数。我不明白问题出在哪里。这并不能纠正我的错误 这是我的php文件 刚出现的派克 错误 内容类型:text/html 回溯(最近一次调用last):文件“C:\wamp\www\MLWebsite\website\new.py”,第15行,在x=sys中。argv1索引器错误:列表索引超出范围 请帮我解决这个问题