словарь и стек в проблеме Python

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

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

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

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)

1
задан Mark Byers 17 July 2010 в 22:53
поделиться

3 ответа

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

# 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
ответ дан 2 September 2019 в 22:57
поделиться

use

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

print element

но это не такой стек :/

0
ответ дан 2 September 2019 в 22:57
поделиться

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

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()

Result:

(4, 5)
(5, 4)
2
ответ дан 2 September 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: