【问题标题】:Extend Python list "inline"扩展 Python 列表 \"inline\"
【发布时间】:2019-04-06 22:22:15
【问题描述】:

我正在寻找替代方案list.extend()内联工作的方法。

代替

x = range(15,30,3)
x.extend([0])
print (x)

>>> [15, 18, 21, 24, 27, 0]

我需要一个内联工作的等价物,比如

print range(15,30,3).extend([0])

>>> None

但是extend 不会返回列表本身。

是否有任何花哨的开箱即用命令来实现相同的功能?

  • 啊,print sum([range(15,30,3)],[0]) 似乎适用于我的情况......
  • 我不明白为什么它不起作用。这也不起作用 [\"hi\"].extend([\"my\", \"name\", \"is\"])。结果为无。

标签: python list


【解决方案1】:

只需将这些列表与 + 运算符连接起来:

range(15, 30, 3) + [0]

或者,如果您需要一个迭代器并且 list 很大,请使用 itertools.chain

import itertools
it = itertools.chain(range(15, 30, 3), [0])

快速说明:range 在 Python 3+ 中创建一个 range 对象,该对象不允许连接:

范围实现了所有常见的序列操作,除了 连接和重复(由于范围对象可以 只表示遵循严格模式和重复的序列 并且连接通常会违反该模式)。

【讨论】:

    【解决方案2】:

    在 Python 3+ 中,就像 @vaultah 所说,范围创建 range 对象。但是您可以先从范围对象创建list

    x = list(range(15, 30, 3)) + [0]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 2012-02-05
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      相关资源
      最近更新 更多