2016-11-14 67 views
3

希望社區可以更好地向我解釋這一點。以下是目標,我試圖從目標上理解這些代碼。Python中的raw_input()。strip()。split()如何在此代碼中工作?

目的:初始化你的列表並讀入值,然後讀入命令行,其中每個命令將是上面列出的類型。按順序遍歷每個命令並在列表中執行相應的操作。

樣品輸入:

12 
insert 0 5 
insert 1 10 
etc. 

示例輸出:

[5, 10] 
etc. 

第一行包含的整數,n,表示命令的數量。 後續行的每一行都包含上述命令之一。

代碼:

n = int(raw_input().strip()) 

List = [] 
for number in range(n): 
args = raw_input().strip().split(" ") 
if args[0] == "append": 
    List.append(int(args[1])) 
elif args[0] == "insert": 
    List.insert(int(args[1]), int(args[2])) 

所以這是我的變量的解釋 「ARGS」。您從用戶處取得原始輸入,然後從原始輸入中刪除空格。一旦被刪除,split函數將該字符串放入一個列表中。

如果我的原始輸入是「插入0 5」,不會strip()將它變成「insert05」?

+0

解決您的壓痕。 'for'循環體需要縮進。 – Barmar

回答

0

不,那將是.remove(" "),.strip()只是在字符串的開始和結尾處擺脫空白。

+0

出於某種原因,我認爲它是字符串中每個單詞的開始和結尾。非常感謝你清理那些小小的東西! – CTLearn

+0

沒問題。您也可以隨時查看文檔(我認爲) –

+0

可悲的是,我做了並且讀錯了。 – CTLearn

5

在python中,您使用split(delimiter)方法到一個字符串中,以便根據您指定的分隔符(默認情況下是空格字符)獲取列表,並且strip()方法刪除了結尾處的空白和開頭的串

因此,通過一步一步的操作是:

raw_input()   #' insert 0 5  ' 
raw_input().strip() #'insert 0 5' 
raw_input().strip().split() #['insert', '0', '5'] 

可以通過例如,如果你想轉換以分號分隔字符串使用split(';')「插入; 0; 5」

+0

非常感謝您的一步一步! – CTLearn