Я сделал словарь, и я поместил ключи 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)
Думаю, пользователь хочет вот это:
# 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)
use
element = stack[0]
if len(stack) > 0:
stack = stack[1:]
print element
но это не такой стек :/
Вы можете использовать список в качестве стека:
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)