小编Kev*_* Jr的帖子

Python 3 中是否有类似于 collections.deque 的列表理解的东西?

问题

\n

有没有办法做类似的事情

\n
some_list = [int(x) for x in input().split()]\n
Run Code Online (Sandbox Code Playgroud)\n

但返回一个collections.deque对象而不是列表?\xc2\xa0 特别是,我试图避免创建列表并将其转换为deque(some_list)因为这会增加 O(n) 的时间复杂度,如此处所示并此处解释。

\n

语境

\n

我正在研究一个 HackerRank 问题的练习(但会避免在这里分享,以避免人们破坏寻找答案的乐趣)。\xc2\xa0 因此,我不会给出示例输出因为它只有在问题的完整背景下才有意义。\xc2\xa0 然而,我可以透露一些相关的事情,但不会冒剧透的风险。

\n

相关内容

\n
    \n
  1. 我正在通过 stdin 接收非常大的列表/双端队列(最多 100k 个元素)。\xc2\xa0 它们需要在读入之后(或同时)转换为整数。

    \n
  2. \n
  3. 列表/双端队列本身中的元素介于 1 和 2 31之间。

    \n
  4. \n
  5. 我需要快速比较并从两端弹出。\xc2\xa0不需要(a)查看数据中间,也不需要(b)对其进行排序。

    \n
  6. \n
  7. 我只能使用 stdin 来获取数据,但我会提前知道列表/双端队列的大小。\xc2\xa0

    \n
  8. \n
  9. 快速的运行时执行是我们所希望的,但不幸的是我无法使用 Numpy、Pandas 和 Numba 来提供帮助。

    \n
  10. \n
\n
我考虑双端队列和列表理解的理由
\n

由于(3)和(5),似乎该deque对象是最好的方式。\xc2\xa0 由于(1)和(5),我想立即将输入转换为整数这就是为什么我想到了列表推导式。\xc2\xa0

\n
输入示例 …

python list-comprehension deque python-3.x

5
推荐指数
1
解决办法
353
查看次数

标签 统计

deque ×1

list-comprehension ×1

python ×1

python-3.x ×1