2016-11-14 69 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