【问题标题】:How does raw_input().strip().split() in Python work in this code?Python 中的 raw_input().strip().split() 在这段代码中是如何工作的?
【发布时间】:2016-11-14 21:25:16
【问题描述】:

希望社区可以更好地向我解释这一点。下面是目标,我试图在给定目标的情况下理解这段代码。

目标:初始化您的列表并读取后面的命令行的值,其中每个命令将属于上面列出的类型。按顺序遍历每个命令,并在你的列表上执行相应的操作。

示例输入:

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 函数将字符串放入列表中。

如果我的原始输入是“insert 0 5”,strip() 不会把它变成“insert05”吗?

【问题讨论】:

  • 修正缩进。 for 循环体需要缩进。

标签: python split strip


【解决方案1】:

在 python 中,您在字符串上使用split(delimiter) 方法,以便根据您指定的分隔符(默认为空格字符)获取列表,strip() 方法删除末尾的空格并字符串的开头

所以一步一步的操作是:

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

如果要转换以分号 'insert;0;5' 分隔的字符串,可以使用 split(';') 示例

【讨论】:

  • 非常感谢您一步一步完成!
【解决方案2】:

举个例子,你接受原始输入

string=' I am a coder '

当你以字符串的形式输入时,首先,strip() 会消耗输入,即 string.strip() 会产生它

string='I am a coder' 

因为前面和结尾的空格都被删除了。 现在, split() 用于将剥离的字符串拆分为列表 即

string=['I', 'am', 'a', 'coder'] 

【讨论】:

    【解决方案3】:

    不,那将是.remove(" ").strip() 只是去掉字符串开头和结尾的空格。

    【讨论】:

    • 出于某种原因,我认为它是字符串中每个单词的开头和结尾。非常感谢您清理了这一点!
    • 没问题。您也可以随时查看文档(我认为)
    猜你喜欢
    • 1970-01-01
    • 2011-05-16
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多