【问题标题】:A Function Returns a List with one Value. How to assign it?函数返回具有一个值的列表。如何分配?
【发布时间】:2015-07-07 07:35:35
【问题描述】:

numpy.correlate 为长度相等的参数返回一个长度为 1 的数组。分配该值而不是数组的最佳方法是什么?

  • [result] = numpy.correlate([1], [1])
  • result, = numpy.correlate([1], [1])
  • result = numpy.correlate([1], [1])[0]

如果我正确理解 Python 3.5 中的 PEP 448,这将另外允许:

  • result = *numpy.correlate([1], [1])

有没有规范的正确写法?

【问题讨论】:

  • 你能定义“最佳”吗?
  • @RomanLuštrik "best",如 "most pythonic",最好没有任何性能损失。

标签: python coding-style iterable-unpacking


【解决方案1】:

形式:

result = numpy.correlate([1], [1])[0]

与其他语言更相似,所以在我看来,它更容易阅读和理解。

【讨论】:

  • 我倾向于同意; OTOH,如果函数碰巧返回一个包含多个元素的列表,其他两种形式会抛出 ValueError: too many values to unpack 异常,这可能很有用。
  • 我刚刚检查过:这比其他两个选项快大约 25%。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多