【问题标题】:How can I make my code more optimised using functions?如何使用函数使我的代码更加优化?
【发布时间】:2021-01-15 21:24:53
【问题描述】:

我有一个代码,其中 python 使用 zip 和 lambdas 按另一个参数对参数进行排序。 所以问题是我怎样才能让它更容易更优化。 提前感谢!

# Declaring initial lists
zipped1 = zip(al2, al3)

# Converting to list
zipped1 = list(zipped1)


# Using sorted and lambda
res1 = sorted(zipped1, key=lambda x: x[1])

# printing result
help1 = [x for x, y in res1]
fine1 = iter(help1) 

【问题讨论】:

  • 函数并没有真正优化代码。相反,它们用于使代码可重用且结构合理。
  • 那么如果没有函数,我怎么能缩小我的代码呢?
  • “优化”后,您希望它看起来如何或会发生什么?您要解决的确切问题是什么?不清楚..
  • 例如我希望它在一行中
  • 再次,为什么它必须在一行中?将其减少到一行并不一定会使其优化。有时,它甚至会降低可读性。

标签: python optimization


【解决方案1】:

您可以完全摆脱 zipped1help1,如下所示:

fine1 = [x for x, _ in sorted(zip(al2, al3), key=lambda x: x[1])]

虽然这不会优化您的代码速度,但只会优化大小。

【讨论】:

  • 不需要中间列表,然后是最后一个iterfine1 = (x for x, _ in sorted(zip(al2, al3), key=lambda x: x[1])) 也一样。
  • @MisterMiyagi 好声音,我已经编辑了
  • 最后我做了这样的:fine1 = iter([x for x, y in sorted(list(zip(al2, al3)), key=lambda x: x[1])])
  • @elbekrustamov 但是,列表的创建和对iter 的调用是用fine1 = (x for x, _ in sorted(zip(al2, al3), key=lambda x: x[1])) 创建的生成器无法做到的吗?
猜你喜欢
  • 1970-01-01
  • 2016-05-07
  • 2021-11-25
  • 1970-01-01
  • 2020-05-29
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
相关资源
最近更新 更多