【问题标题】:Python 3 list with range and other individual numbers带有范围和其他单个数字的 Python 3 列表
【发布时间】:2017-04-25 16:11:33
【问题描述】:

我需要列出一个数字列表。这些数字代表二进制掩码。前 100 个左右的掩码都包含在此范围内。在下一组掩码中,仅包含某些掩码。我需要一个类似于以下的列表。

[1,2,3,5,6,7,8,9,10,30,34,48,53,62]

我可以做类似[range(1,10),30,34,48,53,62] 的事情吗

或者我是否需要使用 range(1,10) 创建我的列表,然后将下一个列表附加到它?

谢谢

【问题讨论】:

    标签: list python-3.x append range


    【解决方案1】:

    Python 3 实际上允许您构建一个列表文字,将 * 前置到任何可迭代对象 - 这些对象又会被适当地扩展:

    >>> [1,2, *range(10), *range(2)]
    [1, 2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1]
    

    如果您需要这 n 个较旧的 Python,或者如果您希望为可能需要遍历您的代码的 Python 不太精通的人保持可读性,一个选项就是使用 @987654323 连接您的不同列表片段@运算符:

    a = list(range(1,10)) + [ 30,34,48,53,62]
    

    【讨论】:

    • 让我稍微修改一下我的问题,因为我不知道这会有所作为,但似乎有所作为。我正在使用它来填充字典中的值。 {"onState":[range(1,65),45,52,54] 它不会让我在除赋值语句之外的任何内容中使用“”。
    • 你当然可以{ "onState":[*range(1,65), 42, 52, 54]} 列表文字所允许的语法不会改变,无论你将文字放在哪里。
    【解决方案2】:

    看来我必须使用列表(范围(1,10)+[47,34,57] 解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      相关资源
      最近更新 更多