python一道關於堆疊的題

2021-08-03 15:44:30 字數 1381 閱讀 7405

利用列表來模擬堆疊。什麼是堆疊?堆疊是一種執行」後進先出」演算法的資料結構。在這裡利用列表來模擬堆疊。

def

push

(char1, l):

l.insert(0, char1)

print(l)

defpop

(y, l):

if len(l) == 0:

print('cannot pop from an empty list!')

else:

for i in range(int(y)):

delete = l.pop(i-i)

print(delete)

l =

char = input('請輸入要測試的字串: ')

for i in range(len(char)):

char1 = char[i]

push(char1, l)

for i, album in enumerate(l):

print(i, album)

y = input('請輸入想刪除的字母的個數: ')

pop(y, l)

print('經過刪除後的列表為: ', l)

在這裡需要注意幾點。首先是在插入時利用了l.insert(0, char1),為什麼要這樣用。我們知道堆疊是」後進先出」即」先進後出」因此最先出現的字母我們要把它放到後面,對於新來的字母我們利用l.insert(0, char1)把它放到列表的最前面。其次,在刪除元素時要注意元素的下標,因為我們要刪除列表中最前面的字母即下標為0的字母。因此我們在刪除中要用delete= l.pop(i-i)在這裡的迴圈中的i只能用來控制次數,不能當做下標!為什麼?因為i開始等於0所以說我們第一次刪除的時列表中最前面的元素,單進行第二次迴圈時i=1,此時刪除的並不是最前面的元素而是最前面元素的後乙個元素。因此要用i-i控制下。

請輸入要測試的字串:    abcd

['a']

['b', 'a']

['c', 'b', 'a']

['d', 'c', 'b', 'a']

0 d1 c

2 b3 a

請輸入想刪除的字母的個數: 4dc

ba經過刪除後的列表為:

請輸入要測試的字串: abcd

['a']

['b', 'a']

['c', 'b', 'a']

['d', 'c', 'b', 'a']

0 d1 c

2 b3 a

請輸入想刪除的字母的個數: 2dc

經過刪除後的列表為: ['b', 'a']

python一道關於字典的題

建立字典。給定兩個長度相同的列表,比如說,列表 1,2,3,和 abc def ghi 用這兩個列表裡的所有資料組成乙個字典,像這樣 在這裡要用到dict.setdefault key,default 這個函式如果key在dict內部會返回key所對應的value,key不在dict內部會在dict...

關於Python列表的一道題

題目 list1 1,2,3,4 怎麼做才能得到 2,3,4 1,3,4 1,2,4 1,2,3 最近在學習python,今天學習了python中的列表,於是上csdn上看看相關的帖子和學習心得。於是瀏覽到了這篇帖子 list.index 方法詳解 在這篇帖子的最後,作者留了一道題目,也就是標題看到...

python一道關於檔案操作的題

這道題是python核心程式設計裡面的題,改編了一下 因為我只實現了一部分 不同的url有不同的字尾例如.com和.cn對於不同的字尾我們要把url存到不同的合法且正確的html檔案中。首先要先解決把不同的url存到不同的檔案中。這裡要用到os模組。我們要改變當前工作目錄,把目錄設定為你想要進行操作...