我正在做一个项目,我正在做一个命令行来学习如何在Python中使用诅咒。我开始为命令的解释器工作,但是有一种情况我想看看是否有更好的解决方案。你知道吗
我想将字符串输入拆分为命令和参数。下面是一个我如何做到这一点的例子:
def processor(inputText):
command, arguments=inputText.split(' ')[0], inputText.split(' ')[1:]
我可以这样做,但因为我挑剔/古怪,我不喜欢有inputText.split(' ')
两次。我可以选择另一个选项来缩短它:
def processor(inputText):
inputTextSplit=inputText.split(' ')
command, arguments=inputTextSplit[0], inputTextSplit[1:]
因为我们正在缩短代码,inputTextSplit
更长,所以用i
替换它可能会更好:
def processor(inputText):
i=inputText.split(' ')
command, arguments=i[0], i[1:]
不过,我的问题是,使用较短的变量(如i
)可能会导致以后覆盖其他变量(如在for
循环(如for i in array:
)中使用i
)。这将使代码看起来更干净,但同时如果不小心可能会导致问题。你知道吗
有没有一种方法可以将数组的拆分部分转换为变量?例如,在TI Basic中,可以传递一个列表作为操作的参数。要在TI Basic中获得图形函数的多个输出,如下所示:
"If Y₁ is 2x, then the results would be as follows:"
Y₁({1, 3})
"{2, 6}"
{Y₁(1), Y₁(3)}
"{2, 6}"
有没有类似的方法来做这样的假设:
def processor(inputText):
command, arguments=inputText.split(' ')[[0,1:]]
是否有一些先进的Python技术可以实现这一点,或者只是一个懒惰的想法?像'command arg1 arg2'
这样的输入的预期结果是['command', ['arg1', 'arg2']]
。你知道吗
我也不想把这个概念局限于我的项目示例。另一个例子是array[[0,1:6,7:8,9:]]
,它将给出另一个具有4个值的数组,这是原始数组的一部分。你知道吗
另外,我使用的是python2.7。提前谢谢你的建议。你知道吗
您可以简单地执行以下操作:
使用
*arguments
将split
生成的列表的所有剩余部分分配给command
后的arguments
列表。你知道吗您可以查看PEP 3132 Extended Iterable Unpacking以了解有关此语法的详细信息。你知道吗
相关问题 更多 >
编程相关推荐