在python中,如何将负数扩展到deque的左侧?

2024-07-08 11:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我在Python3中键入以下代码以将负数扩展到deque的左侧

de=collections.deque([])
de.extendleft('-1-2-3-4-5-6')

我得到了这样的输出

deque(['6', '-', '5', '-', '4', '-', '3', '-', '2', '-', '1', '-'])

相反,我希望得到如下输出:

deque(['-6','-5''-4','-3','-2','-1'])

Tags: 代码键入decollectionspython3deque负数extendleft
3条回答

这很难看,但很管用: 而不是

de.extendleft('-1-2-3-4-5-6')

使用

de.extendleft('-1-2-3-4-5-6'.replace('-',',-').split(',')[1:])

它做什么:

  • replace('-',',-')添加了一个逗号,可以用split分隔。因此,在这第一步中,您将得到:

    '-1-2-3-4-5-6'.replace('-',',-')=',-1,-2,-3,-4,-5,-6'
    
  • split(',')中,您退出之前添加的逗号,并可以将其拆分为一个列表:

    ',-1,-2,-3,-4,-5,-6'.split(',')=['', '-1', '-2', '-3', '-4', '-5', '-6']
    
  • 最后,您必须退出位置0中的无用空间,这就是为什么您最后放置了[1:],因此最后的部分成为

    ['', '-1', '-2', '-3', '-4', '-5', '-6'][1:]=['-1', '-2', '-3', '-4', '-5', '-6']
    

因此,最终列表将变为

['-1', '-2', '-3', '-4', '-5', '-6']

编辑:不要遵循此答案,最好使用空格而不是逗号作为分隔符

您正在将字符串作为输入。因此,它认为-这也是一个元素

from collections import deque

x = '-1-2-3-4-5-6'.replace('-', ' -').strip()
de = deque([])
de.extendleft(x.split())

它应该是一个列表,而不是一个字符串。使用'-1-2-3-4-5-6'.replace('-', ' -').split(' ')[1:]

import collections
de=collections.deque([])
de.extendleft([-1,-2,-3,-4,-5,-6])

import collections
de=collections.deque([])
de.extendleft('-1-2-3-4-5-6'.replace('-', ' -').split(' ')[1:])

相关问题 更多 >

    热门问题