словарь и стек в проблеме питона - PullRequest
1 голос
/ 18 июля 2010

Я сделал словарь, и я положил ключи dict в список.Мой список содержит такие элементы:

s =  [((5, 4), 'South', 1), ((4, 5), 'West', 1)]

Я сделал из этого вывод:

child = dict((t[0], t[1]) for t in s)

keys = child.keys()
print keys

Вывод: [(4, 5), (5, 4)]

Теперь мне нужно поставить(4,5) и (5,4) в стек.Что мне делать?

Я пытался, но когда я высовываюсь из стека, он дает мне 2 элемента вместе.как stack.pop () - output is : [(4, 5), (5, 4)].Я хочу выскакивать один за другим ... (4,5), а затем (5,4)

Ответы [ 3 ]

2 голосов
/ 18 июля 2010

Вы можете использовать список как стек:

stack = list(child.keys())
print stack.pop()
print stack.pop()

Результат:

(5, 4)
(4, 5)

Важное примечание: ключи словаря не упорядочены, поэтому, если вы хотите, чтобы элементы вконкретный заказ вы должны справиться с этим самостоятельно.Например, если вы хотите, чтобы они были отсортированы в обычном порядке, вы можете использовать sorted.Если вы хотите, чтобы они отображались в обратном порядке по сравнению с порядком, в котором они были s, вы можете пропустить преобразование в словарь и просто перейти прямо из s в свой стек:

stack = [x[0] for x in s]
print stack.pop()
print stack.pop()

Результат:

(4, 5)
(5, 4)
0 голосов
/ 18 июля 2010

Я думаю, что пользователь хочет это:

# python
> stack = [(4, 5), (5, 4)]
> stack.pop(0)
(4,5)
> stack.pop(0)
(5,4)

Просто напоминание, однако, это не правильный стек. Это правильный стек:

# python
> stack=[]
> stack.append( (4,5) )    
> stack.append( (5,4) )
> stack.pop()
(5,4)
> stack.pop()
(4,5)
0 голосов
/ 18 июля 2010

используйте

element = stack[0]
if len(stack) > 0:
   stack = stack[1:]

print element

, но это не тот стек: /

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