Как мы можем расширить отрицательные числа в левую часть двухсторонней очереди в python? - PullRequest
0 голосов
/ 16 июня 2020

Если я наберу следующий код в python 3, чтобы расширить отрицательные числа слева от двухсторонней очереди

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'])

Ответы [ 3 ]

1 голос
/ 16 июня 2020

Это должен быть список, а не строка. Используйте '-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:])
1 голос
/ 16 июня 2020

Вы вводите строку. По этой причине - это тоже элемент.

from collections import deque

x = '-1-2-3-4-5-6'.replace('-', ' -').strip()
de = deque([])
de.extendleft(x.split())
0 голосов
/ 16 июня 2020

Это уродливо, но работает: вместо

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']

РЕДАКТИРОВАТЬ : не следуйте этому ответу, лучше использовать пробел вместо запятой в качестве разделителя .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...